Firebase / React: currentUser имеет значение null после входа в систему с перенаправлением Google и перезагрузки - PullRequest
0 голосов
/ 16 ноября 2018

Я использую предустановленную Firebaseui от Google для аутентификации в приложении create-реагировать.

У меня есть функция onAuthStateChanged, установленная в componentDidMount.

componentDidMount() {
  firebase.auth().onAuthStateChanged((user) => {
    console.log('Auth state changed');
    console.log('user: ',user);
    if (user) {
      this.setState({user: user});
    } else {
      this.setState({user: null});
    }
});

}

Я использую this.state.user в render, чтобы показать различные элементы пользовательского интерфейса в зависимости от того, вошли они или нет. Я также регистрирую currentUser:

render() {
  console.log('render currentUser: ',firebase.auth().currentUser);
  ...

Вот что происходит, когда я пытаюсь войти в систему с помощью firebaseui:

1) Нажмите кнопку Log In , которая отображает FirebaseUI.

2) Выберите Войти через Google

enter image description here

3) Страница перенаправляется на страницу авторизации Google, затем перенаправляется обратно в мое приложение

4) После перезагрузки я вижу следующие журналы консоли:

render currentUser: null
Auth state changed
user: null
render currentUser: null

5) Снова нажмите кнопку Log

6) FirebaseUI показывает пустое окно с индикатором загрузки вверху, затем закрывается. Перенаправления нет.

enter image description here

7) Консольный вывод:

render currentUser: null
Auth state change
user: {firebase user object...}
render currentUser: {firebase user object...}

Это похоже на то, что Firebase где-то хранит информацию об аутентификации, но не загружается при загрузке приложения. Как я могу заставить Firebase распознать, что пользователь вошел в систему при первой перезагрузке страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...