web-dev-qa-db-fra.com

Firebase arrête d'écouter onAuthStateChanged

Depuis la version ^ 3.0.0, j'ai du mal à supprimer l'écouteur de changement d'état d'authentification.

Pour démarrer l'écouteur selon la documentation:

firebase.auth().onAuthStateChanged(function (user) {
    // handle it
});

Cependant, je ne trouve nulle part dans la documentation qui fait référence à un écouteur de changement d'état de suppression d'authentification. Il existe une fonction particulière sur la classe Firebase.Auth appelée removeAuthTokenListener. Malheureusement, ce n'est pas documenté ( référence des documents Firebase ).

Via la console Web de votre navigateur.

var auth = firebase.auth();
auth.removeAuthTokenListener;

imprime une définition de fonction qui prend un paramètre. J'ai essayé de faire ce qui suit:

this.authListener = firebase.auth().onAuthStateChanged(function (user) {...});
firebase.auth().removeAuthTokenListener(this.authListener);

mais cela n'a rien fait.

37
James Gilchrist

Selon la documentation , la fonction onAuthStateChanged() renvoie

La fonction de désabonnement pour l'observateur.

Vous pouvez donc simplement:

var unsubscribe = firebase.auth().onAuthStateChanged(function (user) {
    // handle it
});

Et alors:

unsubscribe();
84