【问题标题】:RNfirebase phone auth not working with release apkRNfirebase 电话身份验证不适用于发布 apk
【发布时间】:2021-04-02 21:58:52
【问题描述】:

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

使用的库:

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

代码片段:

SignIn 发送 OTP 的方法:

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);

【问题讨论】:

    标签: javascript react-native firebase-authentication


    【解决方案1】:

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

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

    【讨论】:

    • 问题不在于这些步骤,我遵循它们并在签名的 apk 上有时工作有时不工作。
    • 只需在应用程序配置中向 Firebase 帐户添加一个 ssh 密钥即可。您可以使用 cd android 然后在 android 文件夹中简单地运行 gradlew signingreport 如果在 mac 或 ./gradlew signingreport 如果在窗口
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2016-08-04
    • 2013-03-23
    相关资源
    最近更新 更多