firebase.auth.getRedirectResult之后无法在Firestore上创建用户个人资料

在移动应用程序上,我使用Firebase Google OAuth登录用户。按照移动设备的建议,我更喜欢firebase.auth.signInWithRedirect而不是signInWithPopup。

发生登录后,用户将通过承诺firebase.auth.getRedirectResult重定向到移动应用,并且我的应用(从OAuth提供者那里)获取用户详细信息。

dfA.join(dfB,(dfA.key == dfB.key) & (dfA.createdTime  < dfB.createdTime) ).show()

正确填充结果值,并且对updateUserData的调用工作正常,但在Firestore上未创建任何记录。

经过几个小时的调查,我发现在setTimeout this.afAuth.auth.getRedirectResult().then((result) => { if (result.user) { this.updateUserData(result.user) // setTimeout( _ => this.updateUserData(result.user),100); } }) private updateUserData(user) { // Sets user data to firestore on login console.log(user); const userRef: AngularFirestoreDocument<User> = this.afs.doc(`users/${user.uid}`); const data = { uid: user.uid,email: user.email,displayName: user.displayName,photoURL: user.photoURL } userRef.set(data,{ merge: true }).then( _ => console.log('result')); } 内调用updateUserData可以正常工作

我提供了一个stackblitz example

我对这种解决方法没有信心,我想知道是否有人也遇到了这个问题,或者我的实现方式是否错误。

webkate4747 回答:firebase.auth.getRedirectResult之后无法在Firestore上创建用户个人资料

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3169136.html

大家都在问