web-dev-qa-db-fra.com

Écouteur d'état d'authentification de base de feu Android appelé à plusieurs reprises

J'utilise Firebase Android sdk v.9.0.2 et je ne peux pas dépasser l'enregistrement pour l'instant. J'ajoute un auditeur d'état d'authentification et le supprime après un enregistrement réussi. Pourtant, on l'appelle plusieurs fois. Voici ce que je reçois dans mes journaux:

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.

Le journal "écouteur D/ActivityRegister: auth appelé" se trouve à l'intérieur de l'écouteur lui-même. Comme vous pouvez le constater, lorsque Firebase en informe 0 auditeurs, il est appelé. Et quand il montre 1 auditeur, l'auditeur n'est pas appelé du tout. Existe-t-il une solution de contournement pour cela? 

Les correctifs ne sont pas attendus. Ce numéro fermé. https://github.com/firebase/quickstart-Android/issues/80

6
Sergey Aleynik

Vous pouvez trouver quand cette méthode est déclenchée ici: 

Référence Firebase - AuthStateListener

Je gère ce déclencheur de fonction avec un switch et n'utilise que les cas "Login_Attempt" et "Register_Attempt" (pour envoyer un courrier électronique de vérification) en ignorant le reste. Créez simplement une variable String (et c’est-à-dire lorsque l’utilisateur clique sur le bouton Sign_In, définissez-le comme "Login_Attempt" ).

BR

1
Pablo Prado