2016-05-22 7 views
20

Ab Version^3.0.0 habe ich Schwierigkeiten, den Auth State Change Listener zu entfernen.Firebase stop listen onAuthStateChanged

Um den Hörer pro der Dokumentation zu starten:

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

Allerdings kann ich nicht überall in der Dokumentation, die Auth Zustandsänderung Zuhörer zu einem Entfernen bezieht. Es gibt eine spezielle Funktion in der Firebase.Auth-Klasse namens removeAuthTokenListener. Leider ist es nicht dokumentiert (firebase docs reference).

Über die Webkonsole Ihres Browsers.

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

druckt eine Funktionsdefinition, die einen Parameter benötigt. Ich habe versucht, folgendes zu tun:

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

aber das hat nichts getan.

Antwort

43

Nach the documentation, die onAuthStateChanged() Funktion gibt

Die Abmeldefunktion für den Betrachter.

So können Sie einfach:

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

Und dann:

unsubscribe(); 
+0

Oh jeez ... nicht sicher, wie ich das verpasst. Vielen Dank. –

+2

Ich wusste eigentlich nicht, wie es funktionierte, aber ich habe mehr Erfahrung damit, das meiste aus unserer Dokumentation herauszuholen. ;-) –

+0

Tut mir leid, wenn das eine dumme Frage ist, aber warum sollte sich eine Anwendung jemals von diesem Beobachter abmelden? – nomad