webentwicklung-frage-antwort-db.com.de

Android Firebase-Authentifizierungsstatuslistener wurde mehrfach aufgerufen

Ich verwende Firebase Android sdk v.9.0.2 und komme momentan nicht an der Registrierung vorbei. Ich füge einen Auth-Status-Listener hinzu und entferne ihn bei erfolgreicher Registrierung. Es wird jedoch mehrfach aufgerufen. Das ist was ich in meinen Protokollen bekomme:

D/FirebaseAuth: Notifying listeners about a sign-out event.
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/ActivityRegister: auth listener called
D/FirebaseAuth: Notifying listeners about user ( bwVX8jBbZvYcIj28hYsGZCcbzxi1 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/ActivityRegister: auth listener called
D/FirebaseAuth: Notifying listeners about user ( bwVX8jBbZvYcIj28hYsGZCcbzxi1 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 1 auth state listeners.

Das Protokoll "D/ActivityRegister: Auth-Listener" befindet sich innerhalb des Listeners. Wenn Firebase 0 Hörer benachrichtigt, wird dies tatsächlich aufgerufen. Und wenn es einen Zuhörer zeigt, wird der Zuhörer überhaupt nicht angerufen. Gibt es eine Problemumgehung dafür? 

Fixes werden nicht erwartet. Diese geschlossene Ausgabe. https://github.com/firebase/quickstart-Android/issues/80

6
Sergey Aleynik

Sie finden hier, wann diese Methode ausgelöst wird: 

Firebase-Referenz - AuthStateListener

Ich verarbeite diesen Funktionsauslöser mit einer switch und verwende nur die Fälle "Login_Attempt" und "Register_Attempt" (um Bestätigungs-E-Mails zu senden), wobei der Rest davon ignoriert wird. Erstellen Sie einfach eine Variable String (und wenn der Benutzer die Sign_In-Schaltfläche klickt, legen Sie sie als "Login_Attempt" fest).

BR

1
Pablo Prado