Android端Firebase短信验证(reCaptcha)禁用问题求助
Firebase Phone Auth 本地测试仍显示reCaptcha的解决办法(应用未上架Play Store)
核心原因
当Firebase Phone Auth无法确认设备/应用的合法性时,会自动 fallback 到reCaptcha验证。对于未上架Play Store的本地测试应用,即使启用了Play Integrity API,Google Play服务也无法验证应用的分发渠道(非Play商店安装),因此仍可能触发reCaptcha弹窗。
具体解决方案
同步本地调试签名到Firebase控制台
本地调试用的签名文件SHA-1/SHA-256必须添加到Firebase项目的Android应用配置中:- 获取debug签名信息:
# macOS/Linux keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android # Windows keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android - 复制SHA-1和SHA-256值,在Firebase控制台->项目设置->应用->添加指纹中粘贴保存。
- 下载最新的
google-services.json替换到项目的app/目录下,同步Gradle。
- 获取debug签名信息:
正确配置Play Integrity API
- 确保在Firebase控制台已启用Play Integrity服务(路径:构建->Play Integrity)。
- 检查项目依赖,确保引入了最新版本的相关库:
dependencies { implementation 'com.google.firebase:firebase-auth:22.3.1' // 或更高版本 implementation 'com.google.android.play:integrity:1.2.0' // 或更高版本 }
使用Firebase测试手机号绕过验证(仅限开发测试)
这是最可靠的本地测试方案,官方支持无需reCaptcha:- 进入Firebase控制台->Authentication->登录方法->电话->测试电话。
- 添加测试手机号和对应的测试OTP码。
- 用这些测试号码进行登录时,不会触发reCaptcha弹窗,直接输入测试OTP即可完成验证。
注意事项
未上架Play Store的正式包,即使配置齐全,仍可能因Google Play服务无法验证应用分发渠道而触发reCaptcha。如果是面向正式用户的应用,建议优先上架Play Store以获得完整的设备验证能力。
内容的提问来源于stack exchange,提问作者Dim
相关产品推荐
相关产品推荐

