Frage Überprüfen Sie, ob eine E-Mail existiert


Gibt es eine Möglichkeit zu wissen, ob die von einem Benutzer eingegebene E-Mail in Firebase real ist? Hat die integrierte Anmeldung mit E-Mail- und Passwort-Methode diese Funktion?

EDIT: Entschuldigung für das Missverständnis. Es ist mir egal, ob die E-Mail schon einmal verwendet wurde, was ich wissen muss: Wenn die eingegebene E-Mail "erfunden" oder "echt, existiert" ist


5
2017-10-17 19:03


Ursprung


Antworten:


Ja, Sie können entweder ein neues Konto erstellen oder sich anmelden:

Zum Erstellen, lesen createUserWithEmailAndPasswordist es Dokumente

createUserWithEmailAndPassword wirft 3 Ausnahmen auf:

  1. FirebaseAuthWeakPasswordException: Wenn das Passwort nicht stark genug ist
  2. FirebaseAuthInvalidCredentialsException: Wenn die E-Mail-Adresse falsch formatiert ist

  3. FirebaseAuthUserCollisionException: wenn bereits ein Account mit der angegebenen E-Mail-Adresse existiert.

Du kannst damit umgehen onCompleteListener oder onFailureListener

Hier ein Beispiel wo mAuth ist FirebaseAuth Beispiel:

mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(
                    new OnCompleteListener<AuthResult>()
                    {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task)
                        {
                            if (!task.isSuccessful())
                            {
                                try
                                {
                                    throw task.getException();
                                }
                                // if user enters wrong email.
                                catch (FirebaseAuthWeakPasswordException weakPassword)
                                {
                                    Log.d(TAG, "onComplete: weak_password");

                                    // TODO: take your actions!
                                }
                                // if user enters wrong password.
                                catch (FirebaseAuthInvalidCredentialsException malformedEmail)
                                {
                                    Log.d(TAG, "onComplete: malformed_email");

                                    // TODO: Take your action
                                }
                                catch (FirebaseAuthUserCollisionException existEmail)
                                {
                                    Log.d(TAG, "onComplete: exist_email");

                                    // TODO: Take your action
                                }
                                catch (Exception e)
                                {
                                    Log.d(TAG, "onComplete: " + e.getMessage());
                                }
                            }
                        }
                    }
            );

Zum Anmelden lesen signInWithEmailAndPasswordist es Dokumente zuerst.

signInWithEmailAndPassword löst zwei Ausnahmen aus:

  1. FirebaseAuthInvalidUserException: wenn die E-Mail nicht existiert oder deaktiviert ist.
  2. FirebaseAuthInvalidCredentialsException: Wenn das Passwort falsch ist

Hier ist ein Beispiel:

mAuth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(
                    new OnCompleteListener<AuthResult>()
                    {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task)
                        {
                            if (!task.isSuccessful())
                            {
                                try
                                {
                                    throw task.getException();
                                }
                                // if user enters wrong email.
                                catch (FirebaseAuthInvalidUserException invalidEmail)
                                {
                                    Log.d(TAG, "onComplete: invalid_email");

                                    // TODO: take your actions!
                                }
                                // if user enters wrong password.
                                catch (FirebaseAuthInvalidCredentialsException wrongPassword)
                                {
                                    Log.d(TAG, "onComplete: wrong_password");

                                    // TODO: Take your action
                                }
                                catch (Exception e)
                                {
                                    Log.d(TAG, "onComplete: " + e.getMessage());
                                }
                            }
                        }
                    }
            );

9
2017-10-17 20:32



Es wäre fast unmöglich zu überprüfen, ob die eingegebene E-Mail existiert, Sie können jedoch überprüfen, ob die eingegebene E-Mail-Zeichenfolge der gültigen E-Mail-Struktur entspricht:

if(!isValidEmail(etEmail.getText().toString())) {
         Toast.makeText(getActivity(), "Invalid input for email", Toast.LENGTH_LONG).show();

Dann, wie Jin Liu vorschlägt, benutze sendEmailVerification (), wie:

 mFirebaseUser.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if(task.isSuccessful())
                Toast.makeText(getContext(), "Email Verfication Sent", Toast.LENGTH_LONG).show();
                else {
                    try{
                        throw task.getException();
                    }catch (Exception e) {

                        Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                    }

                }
            }
        });

1
2018-03-28 04:30



Diese vielleicht späte Antwort, aber nur für jemanden, der vorbeigeht, könnte von der Antwort profitieren. Ich denke, der beste Weg, um zu überprüfen, ob die E-Mail existiert oder nicht, besteht darin, die Bestätigungs-E-Mail an die E-Mail-Adresse zu senden.

Versuchen Sie, diesen Link zu überprüfen

https://firebase.googleblog.com/2017/02/email-verification-in-firebase-auth.html

Firebase bietet eine wirklich einfache Möglichkeit, Benutzer-E-Mails zu überprüfen.


0
2018-03-01 05:02