Firebase перестает слушать onAuthStateChanged

Начиная с версии ^ 3.0.0, мне трудно удалить прослушиватель изменений состояния auth.

Чтобы запустить слушатель в документации:

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

Однако я не могу найти нигде в документации, которая ссылается на удаление пользователя смены состояния auth. В классе Firebase.Auth есть своеобразная функция, называемая removeAuthTokenListener. К сожалению, он не задокументирован (ссылка на документацию firebase).

Через веб-консоль браузера.

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

печатает определение функции, которое принимает один параметр. Я попытался сделать следующее:

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

но это ничего не делало.

Ответы

Ответ 1

В соответствии с документацией функция onAuthStateChanged() возвращает

Функция отмены подписки для наблюдателя.

Итак, вы можете просто:

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

И затем:

unsubscribe();