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

强制启用Firebase App Check时能否获取Storage签名下载URL?

问题结论

这个报错是符合预期的正常行为,不属于配置遗漏。

核心逻辑说明

  • 当你为Cloud Storage开启App Check强制拦截模式后,所有访问存储资源的请求都必须携带有效的App Check令牌,否则会直接返回401 Firebase App Check token is invalid.,这个报错和CORS配置没有关系。
  • getDownloadURL() 生成的签名下载URL,本身只绑定了存储安全规则权限、签名有效期两类校验信息,不会自动携带App Check可信凭证。这是刻意设计的逻辑:签名URL可以被任意转发、脱离你的应用环境打开,本身就违背了App Check"仅响应来自你官方可信应用请求"的设计目标,所以直接在浏览器地址栏、curl、未集成Firebase SDK的环境里打开这个URL,必然会被App Check拦截。
  • 你没在官方文档找到对应说明很正常,这属于App Check和Storage联动的默认鉴权规则,不是需要用户手动开关的特殊配置项,所以没有单独的专项说明。

对应场景的解决方案

  • 如果资源只需要在你自己的应用/网页内加载(比如内嵌图片、应用内下载):不要直接把拿到的签名URL赋值给资源地址或者做裸跳转,使用Firebase Storage SDK提供的官方下载/资源获取方法,SDK会自动在请求头中附加当前环境的有效App Check令牌,即可正常通过校验。
  • 如果确实需要生成可脱离应用环境、直接分享访问的链接:可以将对应存储路径的App Check调整为非强制模式(必须同步配置严格的存储安全规则,避免未授权访问风险),或者自行搭建服务端代理,由服务端完成请求合法性校验后再转发返回存储资源,不要直接暴露原生签名URL。
  • 如果已经在使用官方SDK发起请求仍然报这个错,优先排查两点:一是App Check初始化时是否正确关联了Storage服务,二是本地调试环境是否配置了有效的调试令牌、调试令牌是否过期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:01:02