Flutter安卓端使用Firebase Storage突发AppCheck校验失败问题求助
修复步骤
- 首先修正原生层初始化顺序,你的MainActivity中
super.onCreate调用时机错误,必须先执行父类初始化再配置AppCheck,修正后的代码如下:
import android.os.Bundle import com.google.firebase.FirebaseApp import com.google.firebase.appcheck.FirebaseAppCheck import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory import io.flutter.embedding.android.FlutterActivity class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) FirebaseApp.initializeApp(this) val firebaseAppCheck = FirebaseAppCheck.getInstance() firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance()) } }
- 升级低版本依赖,你用的
16.0.0-beta01是早期测试版,存在大量已知问题,将app/build.gradle中的依赖替换为最新稳定版:
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:17.1.0' }
同时升级pubspec.yaml中firebase_app_check插件到官方最新正式版。
- 排查日志输出问题,国内多数安卓系统默认屏蔽第三方应用的Debug级日志:
- 进入手机开发者选项,开启对应应用的日志输出权限(小米、华为等机型需要单独配置)
- 运行以下adb命令直接过滤调试密钥日志:
adb logcat | grep DebugAppCheckProvider - 拿到调试密钥后,进入Firebase控制台AppCheck页面,找到对应安卓应用添加调试密钥,配置完成后等待3-5分钟生效。
- 排查网络问题,日志中的SSL连接重置说明本地网络拦截了Firebase请求,建议关闭代理、VPN后测试,或者切换到不同的网络环境重试。
疑问解答
你看到的Firestore有AppCheck请求记录、Storage没有记录的原因是:AppCheck校验在请求到达具体服务之前就已经失败,没有生成有效令牌的请求不会进入Storage的校验统计环节,Firestore的记录是AppCheck服务本身的请求统计。
即使你没有手动开启AppCheck强制校验,Firebase近期对异常流量的检测机制会对可疑请求临时触发AppCheck校验,这就是你之前正常运行突然报错的原因。
内容的提问来源于stack exchange,提问作者guccisekspir
相关产品推荐
相关产品推荐

