Как удалить новый 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 при размонтировании компонента приложения?

Ответы на вопрос(2)

Ваш ответ на вопрос