web-dev-qa-db-ja.com

FirebaseはAuthStateChangedのリッスンを停止します

バージョン^ 3.0.0の時点で、auth state change listenerを削除するのに苦労しています。

ドキュメントに従ってリスナーを開始するには:

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

ただし、ドキュメント内で認証状態変更リスナーの削除を参照している箇所は見つかりません。 Firebase.AuthクラスにはremoveAuthTokenListenerと呼ばれる独特の関数があります。残念ながら、文書化されていません( firebase docs reference )。

ブラウザのWebコンソール経由。

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

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

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

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

37
James Gilchrist

ドキュメント によると、onAuthStateChanged()関数は

オブザーバーのサブスクライブ解除機能。

したがって、次のことができます。

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

その後:

unsubscribe();
84