gpt4 book ai didi

javascript - 为什么 Firebase 的 "getRedirectResults()"返回 "{user: null}"?

转载 作者:行者123 更新时间:2023-12-03 13:37:39 31 4
gpt4 key购买 nike

目前,当用户通过社交身份验证(通过重定向)时,它会在 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 ,这就是我感到困惑的原因。

最佳答案

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();
}
});
}

关于javascript - 为什么 Firebase 的 "getRedirectResults()"返回 "{user: null}"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53880369/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com