RNfirebase 电话身份验证不适用于发布 apk

时间:2020-12-24 12:45:36

标签: javascript react-native firebase-authentication

我已经使用 rnfirebase 实现了基于电话的身份验证。

使用的库:

"@react-native-firebase/app": "^10.3.0",
"@react-native-firebase/auth": "^10.3.1",

代码片段:

发送动态密码的登录方法:

newSignIn = async () => {
    let phoneNumber = this.state.phone;
    if (this.validatePhoneNumber(phoneNumber)) {
      try {
        const confirmation = await auth().signInWithPhoneNumber(phoneNumber);
        ToastAndroid.show(JSON.stringify(confirmation), ToastAndroid.SHORT);
        this.setState({ confirm: confirmation });
      } catch (error) {
        Alert.alert("Sorry!", "Error occurred. Check phone number.");
      }
    } else {
      Alert.alert(
        "Sorry!",
        "Invalid Phone Number, make sure to add + country code."
      );
    }
  }

当我在模拟器上测试它时,它可以很好地测试电话号码。但是当我创建发行版 apk 并在我的手机上安装该 apk 时,有时它会发送 OTP 并且工作正常。但有时它不起作用,不发送任何 OTP。我已经尝试调试并观察到它正在进入无限在线等待:

    const confirmation = await auth().signInWithPhoneNumber(phoneNumber);

1 个答案:

答案 0 :(得分:-1)

要解决此问题,您需要按照以下步骤操作

  1. 打开 Android Studio
  2. 点击右侧的 Gradle 任务栏
  3. 双击来自 [your app name] > Tasks > android > signingReport 的签名报告
  4. 注意生成的 Variant:Release SHA-1。它应该是任务输出的第一个。
  5. 将此 SHA-1 附加到 Firebase 控制台中的 SHA-1 列表中。您现在应该有 2 个,一个用于调试,另一个用于发布。
  6. 下载新的 google-services.json 并将其放在您的 android/app 目录中。
  7. 重建发布应用。