2024年Expo React Native手机号验证仍跳转Recaptcha问题求助
Expo React Native Firebase手机号验证仍跳转Recaptcha的解决方案
已在Firebase项目常规设置添加SHA1和SHA256证书,但手机号验证仍触发Recaptcha页面,可从以下几个方向排查解决:
1. 确认SHA证书覆盖所有构建场景
Expo开发环境、自定义开发客户端、生产构建使用的SHA证书各不相同,需确保所有场景的证书都已添加到Firebase:
- 运行
expo fetch:android:hashes命令,获取开发环境(Expo Go或自定义开发客户端)和生产构建的SHA1、SHA256哈希值,全部添加到Firebase项目的"项目设置"->"常规"->"应用"->"SHA证书指纹"中。 - 若使用
expo-dev-client自定义开发客户端,需重新构建客户端后,再次确认证书是否正确同步。
2. 检查Firebase Auth配置
- 进入Firebase控制台的"Authentication"->"登录方法",确保"电话号码"登录已启用。
- 切换到"高级"标签,确认"Android设备验证"已正确关联你的SHA证书,没有配置遗漏。
3. 验证Firebase配置文件集成
- 确保
google-services.json文件已正确放置在项目的android/app目录下,且文件中的project_id、client_id等参数与Firebase项目完全匹配。 - 若使用Expo config插件,需在
app.json中配置android.googleServicesFile指向正确的文件路径,示例:"android": { "googleServicesFile": "./google-services.json" }
4. 代码与权限检查
- 确认项目已添加必要的Android权限,在
app.json的android.permissions中包含android.permission.INTERNET(Expo默认已添加,但需确认未被移除)。 - 你的
signInWithPhoneNumber调用无需手动传入Recaptcha验证器,React Native Firebase会自动处理,但需确保设备支持Google安全网验证。
5. 清除缓存并重新构建
- 清除Expo缓存:执行
expo r -c命令重启开发服务器。 - 若使用自定义开发客户端,重新构建客户端:
eas build --profile development --platform android,确保新构建的客户端使用正确的证书。 - Firebase后台的配置更改可能存在缓存延迟,等待5-10分钟后再测试。
6. 测试生产构建
开发环境因证书限制可能默认触发Recaptcha,建议构建生产版本(eas build --profile production --platform android)测试,看是否仍出现该问题。
内容的提问来源于stack exchange,提问作者REFUN RINGLE
相关产品推荐
相关产品推荐

