首页 > 解决方案 > React Native Firebase Phone 验证与真实电话号码静默崩溃

问题描述

我有使用 Firebase 验证用户电话号码的 react-native 应用程序。到目前为止,我正在使用添加到 Firebase 控制台的测试电话号码进行测试,并且运行良好。现在,我正在尝试准备我的应用程序以进行发布,并尝试生成签名版本并测试电话验证。我做了以下事情:

  1. 生成发布密钥库并将其添加到 android/app
  2. 将这些参数添加到 build.gradle android.signincConfigs.release storeFile file('my-release-key.keystore') storePassword 'my-password' keyAlias 'my-alias' keyPassword 'my-password' (基本上遵循这些步骤https: //medium.com/@raguct25/how-to-generate-signed-or-released-apk-file-from-react-native-252bdd1915a2 )
  3. 使用 keytool -list ... 命令获取 SHA-1 并将其添加到我的项目下的 Firebase 控制台。
  4. 下载新的 google-services.json 并将其添加到 android/app 下
    • 使用 ./gradlew assembleRelease 生成构建
    • 使用 Android Studio 生成签名的 APK
    • 使用 react-native run-android —variant=release 在模拟器中运行发布

在每个构建中,当 Firebase 尝试进行身份验证时,它会在发出发送 OTP 代码的请求时导致应用程序崩溃。我的实现类似于此处描述的方法https://heartbeat.fritz.ai/implement-firebase-phone-authentication-in-react-native-apps-237959027611

应用程序适用于测试电话号码。

错误在此代码中默默发生,例如 catch 块没有捕获任何错误:

   firebase
      .auth()
      .signInWithPhoneNumber(this.state.phone)
      .then(confirmResult => {
        this.setState({ confirmResult })
      })
      .catch(error => {
        alert(error.message)
        console.log(error)
      })

我在这里错过了什么吗?

标签: androidfirebasereact-nativefirebase-authenticationsha1

解决方案


将此行放在依赖项下的app/build.gradle中

实现“androidx.browser:browser:1.2.0”

这是因为它会进行 reCAPTCHA 验证并打开浏览器。


推荐阅读