React Native Firebase短信验证:移除reCAPTCHA的Play Integrity API配置求助
解决React Native Firebase手机号验证的reCAPTCHA弹窗问题
一、配置Play Integrity API替代废弃的Device Verification API
- 启用Play Integrity API
打开关联Firebase的Google Cloud控制台,搜索「Play Integrity API」,点击启用该服务。 - 确认Play Console与Cloud项目关联
进入Play Console → 开发者工具 → API访问,确认已显示关联的Google Cloud项目,且Play Integrity API在已启用API列表中。 - 配置Firebase Auth使用Play Integrity
打开Firebase控制台 → 认证 → 登录方法 → 手机号验证 → 高级选项,勾选「使用Play Integrity API」(若未显示该选项,先确认Play Integrity API已启用且项目关联正常)。
二、正确配置@react-native-firebase/app-check模块
1. 安装依赖
# npm npm install @react-native-firebase/app-check # yarn yarn add @react-native-firebase/app-check
2. Android端项目配置
添加调试令牌(测试环境用)
在Firebase控制台 → App Check → 添加应用(选择Android),输入包名后选择「Play Integrity」作为提供者,生成并复制调试令牌。
在android/app/src/main/AndroidManifest.xml中添加meta-data:<meta-data android:name="com.google.firebase.appcheck.debug_token" android:value="你的调试令牌字符串" />更新Gradle依赖
在android/build.gradle中确保Google服务插件版本≥4.3.15:dependencies { classpath 'com.google.gms:google-services:4.3.15' // 其他已有依赖 }在
android/app/build.gradle中添加App Check Play Integrity依赖:dependencies { implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.0' // 其他已有依赖 }
3. React Native端初始化App Check
在应用入口文件(如App.js)中添加初始化代码:
import appCheck from '@react-native-firebase/app-check'; // 初始化App Check,生产环境无需调试令牌 appCheck().initializeAppCheck({ provider: appCheck.PlayIntegrityProvider, isTokenAutoRefreshEnabled: true, });
三、验证配置有效性
- 确保应用使用正确签名密钥(测试用调试密钥、发布用正式发布密钥),且对应的SHA-1/SHA-256已添加至Firebase控制台。
- 运行应用尝试发送OTP,正常情况下不会再弹出reCAPTCHA弹窗。
- 若仍出现弹窗,排查以下点:
- 确认Play Integrity API在Google Cloud控制台已启用。
- 检查App Check初始化状态,可通过日志验证:
appCheck().getToken().then(token => console.log('App Check Token获取成功:', token)); - 确认Firebase Auth的手机号验证高级设置中,未勾选强制reCAPTCHA的选项。
内容的提问来源于stack exchange,提问作者RAHUL BISHT
相关产品推荐
相关产品推荐

