首页 > 解决方案 > 我可以在不需要令牌的情况下公开 firebase 文件 URL 吗?

问题描述

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

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

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

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

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

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

标签: firebasegoogle-cloud-storagefirebase-storage

解决方案


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

上传后,您将不得不涉及一些后端代码来更改对象的配置。您可以通过 Cloud Functions(或您想要的任何后端)设置自己的 API 端点,以运行其中一个Google Cloud Storage 服务器 SDK将文件设置为公开。(您可能还需要某种方式来授权调用您的 API 的用户应该能够进行此更改。)


推荐阅读