Почему FireBase "getRedirectResults ()" возвращает "{user: null}"? - PullRequest
0 голосов
/ 21 декабря 2018

В настоящее время, когда пользователь проходит социальную аутентификацию (через перенаправления), он успешно создает пользователя с именем Firebase Authentication , но не может получить данные API Google / Facebook.Озадачен тем, как не удается получить данные при успешной аутентификации.

Раньше у меня был только SignInWithPopup (который прекрасно работает), но я пытаюсь получить getRedirectResults тоже работает (для мобильных устройств).

Учитывая наблюдаемое мной поведение, проблема, скорее всего, связана с getRedirectResults .Скорее всего, это не настройка социального API, потому что в противном случае пользователь никогда не будет создан при аутентификации.

Следующий код находится в componentDidMount (это приложение React.js):

if (this.state.device === 'mobile') {
  firebase.auth().getRedirectResult().then(function(result) {
    console.log('login successful! Data is:');
    console.log(result);

    if (result.credential) {
      var provider = result.credential.providerId;
      self.handleSocialAuth(provider, result);
    }
  }).catch(function(error) {
    var errorCode = error.code;
    var errorMessage = error.message;
  });
}

results должен содержать данные пользователя, продолжает возвращаться:

login successful! Data is:
{user: null}

Я не отклонился от официальных примеров документов , чтопочему я в замешательстве.

1 Ответ

0 голосов
/ 13 марта 2019

firebase.auth().getRedirectResult() - вызывается после загрузки страницы.Официальная ссылка на документ: https://firebase.google.com/docs/auth/web/google-signin

Используйте приведенный ниже метод для извлечения пользователя, вошедшего в систему.

firebase.auth().onAuthStateChanged(function(user) {
          console.log(user);
});

Если ни один пользователь не вошел в систему, user будет null.

Живой пример:

checkAuthStatus(){
        firebase.auth().onAuthStateChanged(user => {
            this.setState({ btnWithImg: user });

            if(user !== null){
                this.setState({ userIsLoggedIn: true });
                this.props.toggleLogIn();
            }
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...