android - React Native Firebase Phone 验证与真实电话号码静默崩溃
问题描述
我有使用 Firebase 验证用户电话号码的 react-native 应用程序。到目前为止,我正在使用添加到 Firebase 控制台的测试电话号码进行测试,并且运行良好。现在,我正在尝试准备我的应用程序以进行发布,并尝试生成签名版本并测试电话验证。我做了以下事情:
- 生成发布密钥库并将其添加到 android/app
- 将这些参数添加到 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 )
- 使用 keytool -list ... 命令获取 SHA-1 并将其添加到我的项目下的 Firebase 控制台。
- 下载新的 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)
})
我在这里错过了什么吗?
解决方案
将此行放在依赖项下的app/build.gradle中
实现“androidx.browser:browser:1.2.0”
这是因为它会进行 reCAPTCHA 验证并打开浏览器。
推荐阅读
- sql - 尝试在 PL/SQL Oracle 中创建 INSTEAD OF 触发器时,为什么会出现“错误的绑定变量”错误?
- mysql - 在Mysql中从右表加入四个没有重复的表?
- python - Jupyter Notebook:ImportError:无法导入名称ConverterMapping
- c - 如何从父进程向多个分叉子进程发送消息?
- html - 在离子柱中居中并填充图像
- c++ - 有没有办法无延迟地播放声音?
- mysql - MySQL过去试卷中的select语句问题
- ruby - 我怎样才能让 rspec 看守我的当前目录而不是只看 /spec
- ios - 适用于 iOS 的 Google Maps API - 不显示标记
- python - IndexError:访问numpy ndarray形状时元组索引超出范围