升级Firebase App Check插件出现invalid request,如何实现无断点升级?
Firebase App Check升级后"invalid request"问题解决指南
核心背景
从0.0.7+1升级到0.1.1+4版本后,Firebase App Check对Android端的验证机制、依赖配置和初始化API都有了关键更新,这是导致"invalid request"的主要原因。以下是针对性的修复步骤:
1. 对齐Android端依赖配置
- 打开
android/build.gradle,确保Firebase BOM版本不低于32.0.0,同时替换旧的SafetyNet依赖为Play Integrity(官方推荐):dependencies { // 保留其他依赖,更新Firebase BOM和App Check依赖 implementation platform('com.google.firebase:firebase-bom:32.0.0') implementation 'com.google.firebase:firebase-appcheck-playintegrity' } - 若坚持使用SafetyNet(不推荐,已逐步弃用),需保留
firebase-appcheck-safetynet依赖,且要在Firebase控制台保持验证提供者一致。
2. 更新Flutter初始化代码
新版本API有变更,旧写法会导致验证失败:
- 旧版本初始化示例:
await FirebaseAppCheck.instance.activate( androidProvider: AndroidProvider.safetyNet, ); - 新版本调整为:
await FirebaseAppCheck.instance.activate( androidProvider: AndroidProvider.playIntegrity, // 若需继续用SafetyNet,替换为AndroidProvider.safetyNet ); - 调试模式下,通过Logcat搜索
AppCheckDebug获取新的调试令牌,添加到Firebase控制台的「App Check -> 调试设备」列表中,旧令牌已失效。
3. 核对控制台与签名配置
- 登录Firebase控制台,进入项目设置 -> 对应Android应用,确认SHA-256指纹(调试/发布签名)已正确添加,且与本地签名文件一致。
- 进入「App Check」面板,确保Android应用的App Check已启用,验证提供者(Play Integrity/SafetyNet)与代码配置完全匹配。
- 若使用Play Integrity,需在Google Play Console中启用Play Integrity API,确保与Firebase关联的云项目已开通该API。
4. 深度清理重建项目
- 执行
flutter clean,删除项目根目录下的build文件夹,以及android/.gradle、android/build文件夹。 - 运行
flutter pub get重新拉取依赖,再在android目录下执行./gradlew clean,最后重新构建应用。
日志排查
如果以上步骤无效,查看Android Studio的Logcat,搜索FirebaseAppCheck关键词,会显示具体错误原因(比如令牌签名不匹配、API未启用、权限问题等),针对性修复即可。
内容的提问来源于stack exchange,提问作者Raj Maheshwari
相关产品推荐
相关产品推荐

