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