Flutter集成Firebase PlayIntegrity API仍弹出ReCaptcha问题求助
解决方案
一、解决ReCaptcha弹窗问题
1. 验证Firebase App Check配置
- 登录Firebase控制台,进入项目设置 > App Check,确认你的Android应用已启用Play Integrity作为提供者,并且已上传应用签名证书的SHA-256指纹(生产签名和debug签名都需配置,对应不同运行环境)。
- 在Authentication > 设置 > App Check中,开启对手机号认证的强制检查,确保只有通过App Check验证的请求才能跳过ReCaptcha。
2. 确认Flutter项目依赖与配置
- 检查
android/app/build.gradle中是否添加了Play Integrity的依赖:dependencies { // 其他依赖... implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.0' } - 确保应用通过Google Play渠道安装(或内部测试版本):Play Integrity仅对通过Play签名的应用生效,直接运行debug包或非Play渠道安装的应用会触发ReCaptcha,这是正常的安全校验机制。
3. 调试环境临时处理(可选)
如果需要在debug模式下跳过ReCaptcha,可临时切换为Debug提供者,生产环境必须使用Play Integrity:
await FirebaseAppCheck.instance.activate( webRecaptchaSiteKey: 'recaptcha-v3-site-key', androidProvider: kDebugMode ? AndroidProvider.debug : AndroidProvider.playIntegrity, );
二、解决OTP短信显示项目URL的问题
- 进入Firebase控制台项目设置,找到对应Android应用,确保显示名称已设置为你的应用名称。
- 将Firebase项目与Google Play Console关联:在Firebase项目设置的集成标签中,关联你的Play Console项目,Firebase会自动获取应用名称用于OTP短信。
- 检查Authentication的短信模板:在Authentication > 设置 > 短信模板中,确保模板包含
%APP_NAME%变量,而非硬编码的URL,示例模板:你的验证码是 %CODE%,用于登录%APP_NAME%。
内容的提问来源于stack exchange,提问作者Mitul Agrawal
相关产品推荐
相关产品推荐

