Как удалить новый firebase onAuthStateChanged слушатель в реакции
Я реализую аутентификацию firebase в реагирующем веб-приложении с реактивным маршрутизатором.
Пользователь выполняет вход (в / вход) с помощью Facebook или Google с помощью всплывающего входа, а затем, в случае успеха, я перенаправляю в главное приложение (/). В основном компоненте приложения я слушаю изменение состояния аутентификации:
componentWillMount() {
this.authListener = this.authListener.bind(this);
this.authListener();
}
authListener прослушивает изменение аутентификации:
authListener() {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
console.log('user changed..', user);
this.setState({
User: {
displayName: user.displayName
}
});
} else {
// No user is signed in.
browserHistory.push('/signin');
}
});
}
Все работает нормально, за исключением случаев, когда я выхожу (и возвращаюсь к / входу в систему) и снова авторизируюсь, используя Facebook или Google. Тогда я получаю сообщение об ошибке:
Предупреждение: setState (...): может обновлять только смонтированный или монтируемый компонент.
Я подозреваю, что прослушиватель onAuthStateChanged из теперь отключенного предыдущего вошедшего в систему приложения состояния все еще работает.
Есть ли способ удалить прослушиватель onAuthStateChanged при размонтировании компонента приложения?