我正在使用Ionic2和GooglePlus Authentication。
我可以登录,并按预期在uid
列表中创建一个Firebase Authentication
的用户。
当我这样做时:
GooglePlus.login({
'webClientId': webClientId,
'offline': true
}).then(googleData => {
webClientId
与Client ID
下的iOS Credential
匹配。
问题:
但是,对于iOS
,googleData
确实包含emailAddress
和uid
,但displayName
和photoURL
为{{1} }}
更多信息:
我的null
设置iOS Credential
与Bundle ID
中的widget id
匹配:
config.xml中
config.xml
它还有<?xml version='1.0' encoding='utf-8'?>
<widget id="com.ionicframework.XXXXXXX" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>theWhoZoo</name>
与上面的REVERSED_CLIENT_ID
匹配。
iOS URL scheme
我还为我的项目创建了一个<plugin name="cordova-plugin-googleplus" spec="~5.1.1">
<variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.XXXXXX" />
</plugin>
,它也有匹配的Firebase App
(不确定这是否有效):
此外,我不确定这是否有所不同,但我在此处将Bundle ID
CLIENT_ID
添加到Google Firebase身份验证中:
问题
我为iOS
设置了这个错误或做错了什么步骤吗?
答案 0 :(得分:1)
这应该添加获取配置文件数据所需的范围:
window.plugins.googleplus.login({
'scopes': 'https://www.googleapis.com/auth/plus.me',
// continue below...
有关详细信息,请参阅官方documentation和插件documentation。
范围描述为here。
答案 1 :(得分:0)
这是我的代码,这在IOS上运行良好。
代码
private nativeGoogleLogin(): Promise<firebase.User> {
return new Promise(async (resolve, reject) => {
const SCOPES = 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/plus.me';
await this.gPlus.login({
'webClientId': 'XXXXXXXX.apps.googleusercontent.com',
'offline': true,
'scopes': SCOPES
}).then(res => {
const googleCredential = firebase.auth.GoogleAuthProvider.credential(res.idToken , res.access_token);
this.afAuth.auth.signInWithCredential(googleCredential).then(odata => {
resolve(odata);
}).catch(err => {
reject(err);
});
}).catch(err => {
reject(err);
});
});
}
如何获取displayName名称
async onGoogleLogin() {
await this.goAuth.googleLogin().then(res => {
alert(JSON.stringify(res));
alert(res.providerData[0].displayName);
}).catch(err => {
console.log(err);
});
}
res.providerData [0] .displayName
注意:在使用此工具之前,请在模拟器中卸载应用并清理构建文件夹 代码。