带有Firebase的Expo React Native Google Auth在Android上已发布的APK版本中不起作用

时间:2020-06-18 00:14:27

标签: android reactjs firebase expo

我想在我的应用程序中包含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证书更改为应用程序签名显示的内容,即有人在另一个问题中说要这样做,但这也不起作用。

如果有人可以帮助,我将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:0)

您应该使用expo-google-sign-in

expo-google-sign-in独立 Expo应用程序或裸React Native应用程序提供本机Google身份验证。它不能在Expo客户端中使用,因为本机GoogleSignIn库在构建时希望REVERSE_CLIENT_IDinfo.plist中。要在Expo客户端中使用Google身份验证,请签出expo-google-app-authexpo-app-auth

https://docs.expo.io/versions/latest/sdk/google-sign-in/#googleidentity