web-dev-qa-db-de.com

Firebase lauscht nicht mehr aufAuthStateChanged

Ab Version ^ 3.0.0 ist es schwierig, den Listener für die Änderung des Authentifizierungsstatus zu entfernen.

So starten Sie den Listener gemäß der Dokumentation:

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

Ich kann jedoch in der Dokumentation keine Stelle finden, die sich auf einen Listener zum Entfernen von Auth-Statusänderungen bezieht. In der Firebase.Auth-Klasse gibt es eine besondere Funktion mit dem Namen removeAuthTokenListener. Leider ist es nicht dokumentiert ( firebase docs reference ).

Über die Webkonsole Ihres Browsers.

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

gibt eine Funktionsdefinition aus, die einen Parameter enthält. Ich habe Folgendes versucht:

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

aber das hat nichts gebracht.

37
James Gilchrist

Entsprechend der Dokumentation gibt die onAuthStateChanged() -Funktion zurück

Die Abmeldefunktion für den Beobachter.

Sie können also einfach:

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

Und dann:

unsubscribe();
84