【问题标题】:Can I make firebase file URLs publicly available without requiring token?我可以在不需要令牌的情况下公开 Firebase 文件 URL 吗?
【发布时间】:2025-12-28 08:20:15
【问题描述】:

我正在使用 firebase 允许用户将他们的文件上传到存储分区。我使用 getDownLoadURL() 来获取公开可用的 URL...但是,它带有一个嵌入式令牌以允许访问该文件。

在我的同一个应用程序中,我使用的是 Google 文档查看器,它采用 URL 来预览文档。不幸的是,Google Doc Viewer 不适用于带有嵌入式令牌的 firebase URL。

在 Google 控制台的单个文件上,我单击将其公开。在这种情况下,现在可以通过 https://storage.googleapis.com// 格式访问 URL……而且我不需要使用效果很好的令牌。

所以,我想做的是在将文件上传到 firebase 时标记/公开文件。我查看了 firebase 文档,似乎没有像 Google API 那样的 makePublic() 方法。

有没有办法可以在上传期间将文件标记为公开,以便无需任何令牌即可访问它?

另一个解决方案是我可以将存储桶更新为可访问,但这使它完全可以在 https://storage.googleapis.com/ 上浏览,我不想这样做。

【问题讨论】:

    标签: firebase google-cloud-storage firebase-storage


    【解决方案1】:

    客户端 Firebase API 对存储分区中公共内容的底层 Google Cloud Platform 配置一无所知。所以这不是一个选择。

    上传后,您必须使用一些后端代码来更改对象的配置。您可以通过 Cloud Functions(或您想要的任何后端)设置您自己的 API 端点来运行 Google Cloud Storage server SDKs 之一以将文件设置为公开。 (您可能还需要某种方式来授权调用您的 API 的用户应该能够进行此更改。)

    【讨论】:

    • 好吧,我害怕那个。没什么大不了的,只是有点痛苦,但似乎应该在 firebase API 中支持。
    • 随时欢迎您提出功能请求。尽管值得注意的是,下载 URL 是提供公共 URL 的机制。 support.google.com/firebase/contact/support
    • 如果 downloadURL() 与其他服务兼容,我会使用它……例如 Google Doc Viewer。但是为了更好/更糟,许多文档/文件查看器希望 url 包含 URL 末尾的扩展名,而 firebase 不支持这一点。对 firebase 团队的快速建议,可能构建 URL,以便令牌位于 URL 的开头并以文件名/扩展名结尾。
    • 如果您希望 Firebase 团队看到建议,请使用我在之前评论中提供的 Firebase 支持链接。
    最近更新 更多