这是一个简单的离子和电容应用,针对iOS和Android。我们通过AngularFirebase使用folliwng代码对用户进行认证。
private async loginGoogleWeb() {
const provider = new firebase.auth.GoogleAuthProvider();
provider.addScope('profile');
provider.addScope('email');
const credential = await this.afAuth.auth.signInWithPopup(provider);
this.updateUserData(credential);
}
奇怪的是,有些时候,我们的应用会出现这样的情况 credential.credential.idToken
包括了用户资料(given_name、family_name等)。但大多数情况下,idToken并不包含这些信息。
有什么想法可以解释为什么会发生这种情况吗?任何帮助都将是非常感激的。
所以经过大量的搜索和阅读,发现Firebase并没有返回预期的配置文件的idToken。根据其中一个答案,这个 发出 发布在Firebase Github中。
正如我前面所说,你对功能的要求是合理的,然而我们在过去讨论过这些东西,并决定现在不会将它们添加到Firebase Auth中。由于这个问题跟踪器是为了跟踪SDK中的bug或我们计划实现的功能请求,所以我打算关闭这个问题。
我最后做的是 "交换 "firebase提供的access_token,并使用下面的url获取用户配置文件。https:/www.googleapis.comoauth2v1userinfo?alt=json&access_token={firebase_provided_access_token}。
只是把这个贴出来,以防以后有人碰到这个问题。