2016-05-22 8 views
20

バージョン^ 3.0.0から、私は認証状態変更リスナーを削除するのが困難です。 Firebase stop listening onAuthStateChanged

は、ドキュメントごとにリスナーを起動するには:

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

しかし、私はどこにでも削除AUTH状態変化のリスナーを指しドキュメントで見つけることができません。 Firebase.Authクラスには、removeAuthTokenListenerと呼ばれる固有の機能があります。残念ながら、それは文書化されていません(firebase docs reference)。

ブラウザのウェブコンソールから

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

は、1つのパラメータを取る関数定義を出力します。私は次のことを試みました:

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

しかし、それは何もしませんでした。

答えて

43

the documentationによれば、onAuthStateChanged()関数は

観察用解除関数を返します。

だから、あなただけのことができます:その後、

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

そして:

unsubscribe(); 
+0

うわあああ...私はそれを逃したかどうかはわかりません。ありがとうございました。 –

+2

私は実際にそれがどのように機能しているかわかりませんでしたが、私たちのドキュメントを最大限に活用した経験があります。 ;-) –

+0

申し訳ありませんが、これは間違った質問ですが、なぜアプリケーションはこのオブザーバーから退会する必要がありますか? – nomad

関連する問題