为什么Firebase的“ getRedirectResults()”返回“ {user:null}”?

时间:2018-12-21 06:50:40

标签: javascript reactjs firebase firebase-authentication

当前,当用户通过社交身份验证(通过重定向)时,它会在 Firebase身份验证下成功创建用户,但无法检索Google / Facebook API的数据。对于认证成功后如何无法检索数据感到困惑。

我以前只拥有 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;
  });
}

结果应该包含用户的数据,并不断返回:

login successful! Data is:
{user: null}

我没有偏离official docs examples,这就是为什么我感到困惑的原因。

2 个答案:

答案 0 :(得分:0)

list1-页面加载后调用。 官方文档链接:https://firebase.google.com/docs/auth/web/google-signin

使用以下方法检索登录的用户。

firebase.auth().getRedirectResult()

如果没有用户登录firebase.auth().onAuthStateChanged(function(user) { console.log(user); }); ,将为user

实时示例:

null

答案 1 :(得分:0)

只有在用户通过身份验证后才应调用 <div class="wrapper"> <div class="list-box"> </div> <div class="triangle"></div> </div> <br> <br> <button>Change my color!</button>。示例

firebase.auth().getRedirectResult()