So senden Sie eine Bestätigungs-E-Mail mit Firebase?

9

Ich registriere meine Nutzer mit der E-Mail- und Passwort-Methode von Firebase. so:

%Vor%

Nachdem die E-Mail-Adresse des Nutzers erfolgreich registriert wurde, möchte ich, dass Firebase eine Bestätigungs-E-Mail sendet. Ich weiß, dass dies mit Firebases sendEmailVerification möglich ist. Zusätzlich zum Senden dieser E-Mail möchte ich, dass das Konto des Nutzers deaktiviert wird, bis die E-Mail-Adresse bestätigt wird. Dazu müsste Firebases Feature isEmailVerified verwendet werden. Es ist mir jedoch nicht gelungen, Firebase dazu zu bringen, die Bestätigungs-E-Mail zu senden. Ich war nicht in der Lage herauszufinden, ob das Konto die Bestätigungs-E-Mail senden und aktivieren kann, nachdem es bestätigt wurde.

    
amigo 03.11.2016, 14:48
quelle

3 Antworten

20

In dieser Frage geht es darum, wie Firebase zum Senden der Bestätigungs-E-Mail verwendet wird. Das OP kann nicht herausfinden, wie das Konto, an das die Bestätigungs-E-Mail gesendet wird, deaktiviert und aktiviert wird und nachdem es verifiziert wurde.

Auch dies ist in der Firebase-Dokumentation nicht korrekt dokumentiert. Also schreibe ich eine Schritt-für-Schritt-Prozedur, der jemand folgen kann, wenn er / sie mit dem Problem konfrontiert ist.

1) Der Benutzer kann die createUserWithEmailAndPassword-Methode verwenden.

Beispiel:

%Vor%

Wenn das neue Konto erstellt wurde, ist der Benutzer ebenfalls angemeldet und der AuthStateListener führt den Callback onAuthStateChanged aus. Im Rückruf können Sie die Aufgabe des Sendens der Bestätigungs-E-Mail an den Benutzer verwalten.

Beispiel:

%Vor%

Jetzt kann die Bestätigungs-E-Mail wie folgt geschrieben werden:

%Vor%

Jetzt zu LoginActivity kommen:

Hier, wenn der Benutzer erfolgreich angemeldet ist, können wir einfach eine Methode aufrufen, bei der Sie Logik schreiben, um zu überprüfen, ob die E-Mail verifiziert ist oder nicht.

Beispiel:

%Vor%

Betrachten Sie nun die checkIfEmailVerified-Methode:

%Vor%

Hier überprüfe ich, ob die E-Mail verifiziert ist oder nicht. Wenn nicht, loggen Sie sich ab.

Das war mein Ansatz, um Dinge richtig zu verfolgen.

    
Amit Upadhyay 21.01.2017 15:00
quelle
3

Verwenden Sie FirebaseAuth.getInstance().getCurrentUser().sendEmailVerification() und FirebaseAuth.getInstance().getCurrentUser().isEmailVerified()

Es gibt keine Möglichkeit, das Konto über das Firebase SDK zu deaktivieren. Sie können das GetTokenResult mit dem Firebase Auth ID Token verwenden und es für Ihr benutzerdefiniertes Backend validieren oder ein Flag für die Firebase-Datenbank festlegen, die diesem Benutzer entspricht. Persönlich würde ich mit der Flagge in der Firebase-Datenbank

gehen     
Ognian Gloushkov 03.11.2016 15:01
quelle
0

senden Sie die Bestätigung an Sie Email

%Vor%

Überprüfen Sie, ob der Benutzer bestätigt hat

%Vor%     
karem 09.07.2017 01:23
quelle