You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter上传Firebase Storage报App Check Too many attempts错误

Flutter Firebase App Check 报 "Too many attempts" 导致Storage上传慢的解决方案

问题对应表现

  • Flutter端集成Firebase Storage做文件上传时,文件最终可上传成功,但整体上传耗时明显偏高
  • 运行日志持续输出错误:
StorageUtil: Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: Too many attempts.
  • 已在Firebase控制台登记Debug App Check Token,且在Flutter的Dart代码层调用了App Check激活接口,但报错持续存在。

核心原因

这个报错本质是App Check SDK短时间内多次尝试拉取校验token失败触发了内置限流,SDK自动降级使用占位token发起请求——占位token会被Firebase服务端校验拦截触发重试,直接拖慢上传速度。
绝大多数场景下问题根源不是配置错误,而是仅在Dart层激活App Check的时机太晚:App Check的token拉取逻辑在应用启动的原生层初始化阶段就会触发,等Dart层代码执行激活逻辑时,SDK已经完成了多轮失败重试触发限流。另外原生侧缺少Debug提供者的显式配置、低版本SDK的已知bug也会触发这个问题。

分步修复方案

Android 端配置(90%的漏配都出在这里)

  • 打开Android工程目录,定位到android/app/src/debug/AndroidManifest.xml(如果debug目录下没有该清单文件,直接新建即可,debug目录下的配置只会在调试编译时生效,不会影响正式包),在<application>节点内添加如下元数据配置,把值替换成你在Firebase控制台登记的Debug Token字符串:
<meta-data
    android:name="com.google.firebase.appcheck.debug.DEBUG_SECRET_PROVIDER"
    android:value="替换成你自己的Firebase App Check Debug Token" />

注意:严禁把这段配置写到main目录下的正式版AndroidManifest.xml中,否则正式发布包会携带Debug校验逻辑,上线后会出现全量校验失败。

  • 打开android/app/build.gradle文件,检查引入的Firebase BOM版本,确保版本号不低于32.0.0,低于该版本的App Check SDK存在Debug模式下无限重试触发限流的已知bug,直接升级到对应稳定版本即可。
  • 卸载测试设备上当前安装的调试包,执行flutter clean清除构建缓存后重新编译运行,清除本地之前缓存的失败重试记录。

iOS 端配置

  • 打开iOS工程目录下的ios/Runner/Info.plist文件,新增配置项传入你在Firebase控制台登记的Debug Token:
<key>FirebaseAppCheckDebugToken</key>
<string>替换成你自己的Firebase App Check Debug Token</string>
  • 用Xcode打开iOS工程,找到AppDelegate.swift(OC项目对应AppDelegate.m),确保在调用FirebaseApp.configure()方法前就完成App Check Debug提供者的注册,不要把初始化逻辑全放到Dart层执行。
  • 卸载测试设备上已安装的调试App,执行flutter clean后重新编译运行。

校验配置生效

配置完成后重新启动应用,过滤日志中带AppCheck标签的输出,如果能看到debug token拉取成功的日志,之前的"Too many attempts"报错就会消失,Firebase Storage的上传速度会恢复到正常水平。
如果仍有报错,去Firebase控制台的App Check页面核对:登记的Debug Token必须和当前调试应用的包名(Android)/Bundle ID(iOS)一一对应,Debug Token不支持跨应用复用。
正式环境发布时记得替换成对应平台的正式校验提供者:Android用Play Integrity、iOS用App Attest,不要在正式包中保留Debug提供者配置。

内容的提问来源于stack exchange,提问作者Andy Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:18:15