Flutter应用Firebase短信认证在Pixel设备报错,三星设备可正常登录
解决Flutter Firebase短信认证在部分安卓设备的报错问题
问题说明
在Flutter应用中使用Firebase Auth实现短信认证时,Pixel 6 Pro等设备出现报错:
This request is missing a valid app identifier, meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded. Please try again, or check the logcat for more details.
三星设备可正常登录,已完成以下配置:
- Firebase控制台中配置了Google Play商店签名指纹
- app/build.gradle中添加了
implementation 'androidx.browser:browser:1.0.0'依赖
排查与解决步骤
1. 检查SafetyNet API配置与设备环境
- 启用SafetyNet API:登录Google Cloud控制台对应项目,搜索并启用SafetyNet API,确保项目关联的API密钥拥有该API的调用权限。
- 更新Google Play服务:Pixel 6 Pro等设备需将Google Play服务更新至最新版本,旧版本可能导致SafetyNet验证流程异常。
2. 确认签名指纹配置完整性
- 同时配置调试与发布指纹:Firebase控制台需同时添加调试签名SHA-1/SHA-256指纹和发布签名指纹,避免测试或发布包因指纹不匹配触发验证失败。
- 校验签名配置:检查app/build.gradle中release和debug变体的签名配置,确保keystore文件、密钥别名、密码与实际使用的签名文件完全一致。
3. 优化reCAPTCHA相关配置
- 升级androidx.browser依赖:将
implementation 'androidx.browser:browser:1.0.0'替换为最新稳定版本(如implementation 'androidx.browser:browser:1.6.0'),提升与新设备WebView的兼容性。 - 核对应用包名:确保Firebase控制台注册的应用包名与Flutter项目的包名完全一致(包括大小写),包名不匹配会直接导致reCAPTCHA验证失败。
4. 借助日志定位具体问题
- 查看logcat日志:过滤关键词
SafetyNet、FirebaseAuth,获取验证失败的具体错误信息,比如SafetyNet返回的错误码、reCAPTCHA加载失败的原因,针对性修复。
内容的提问来源于stack exchange,提问作者Carlos Sandoval
相关产品推荐
相关产品推荐

