目前,当用户通过社交身份验证(通过重定向)时,它会成功创建一个用户Firebase 身份验证,但无法检索 Google/Facebook API 的数据。很困惑当身份验证成功时它如何无法检索数据。
我以前只有弹出登录(效果很好),但我想得到获取重定向结果也可以工作(对于移动设备)。
鉴于我所看到的行为,问题很可能出在获取重定向结果。很可能不是社交 API 设置,因为否则用户将永远不会在身份验证中创建。
以下代码位于组件已挂载(这是一个 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}
我并没有偏离官方文档示例 https://firebase.google.com/docs/reference/js/firebase.auth.Auth#getRedirectResult,这就是我感到困惑的原因。
firebase.auth().getRedirectResult()
- 在页面加载后调用。
官方文档链接:https://firebase.google.com/docs/auth/web/google-signin 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();
}
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)