我想在我的应用程序中包含google auth,但即使它与expo一起使用,也无法在android的发行版本中使用 这是代码:
logInGoogle = async () => {
try {
const result = await Google.logInAsync({
androidClientId:ID,
iosClientId:ID,
scopes: ["profile", "email"],
behavior:'web'
});
if (result.type === "success") {
const { idToken, accessToken } = result;
const credential = GoogleProvider.credential(idToken, accessToken);
Firebase
.auth()
.signInWithCredential(credential)
.then(function(result){
if(result.additionalUserInfo.isNewUser){
Firebase.database().ref('UserToQuestion/' + Firebase.auth().currentUser.uid).set({
notifier: {
Email:Firebase.auth().currentUser.email
}
})
}
})
.catch(error => {
Alert.alert(error)
console.log("firebase cred err:", error);
});
} else {
return { cancelled: true };
}
} catch (err) {
console.log("err:", err);
}
}
这是我的Android版app.json
"android": {
"package": "com.aparson.SFS",
"versionCode": 1
},
在google控制台中,我有一个正在使用的服务帐户,但是我没有配置OAuth同意屏幕,但是我不确定这是否是问题所在,因为当我单击google登录按钮时,什么都没有发生。我还已将SHA-1证书更改为应用程序签名显示的内容,即有人在另一个问题中说要这样做,但这也不起作用。
如果有人可以帮助,我将不胜感激。 谢谢
答案 0 :(得分:0)
您应该使用expo-google-sign-in
expo-google-sign-in
为独立 Expo应用程序或裸React Native应用程序提供本机Google身份验证。它不能在Expo客户端中使用,因为本机GoogleSignIn
库在构建时希望REVERSE_CLIENT_ID
在info.plist
中。要在Expo客户端中使用Google身份验证,请签出expo-google-app-auth
或expo-app-auth
。
https://docs.expo.io/versions/latest/sdk/google-sign-in/#googleidentity