Firebase 存储 - 如何授权文件下载?

Firebase Storage - how to authorize file download?

使用 Firebase 存储时,您可以设置安全规则以授权获取文件的 url,例如使用 getDownloadURL()。但是,一旦用户拥有 URL,是什么阻止黑客将 URL 进行众包?

我知道在Google Cloud Storage中,你可以使用signed urls,这是有时间限制的(还没有做真正的授权)。但是我在 Firebase Storage documentation 中没有看到任何提及 getSignedURL 的地方。我在有关 Firebase 存储的文章中看到过它,但从未直接在 Firebase 的文档中看到过。

据我所知,无法对访问 Firebase 存储文件进行真正的用户授权。请告诉我我错了。

But, once a user has that URL, what's stopping hackers from crowd-sourcing the URL?

没有。事实上,这正是下载 URL 的意义所在:它让任何拥有 URL 只读访问权限的人都能访问数据。

如果您只想授予特定用户访问文件的权限,请不要生成下载 URL 而是使用 SDK 访问数据,并且 use security rules to control that access.


既然你澄清了你问的是网络应用程序:在 JavaScript/Web SDK 中使用下载 URL 是获取数据的唯一方法,而对于本机移动 SDK,我们还有 getData()getFile() 方法,它们通过安全规则强制执行。

我知道考虑过为 Web 客户端添加此类方法,因此可能值得提交功能请求。

在那之前,如果已签名的 URL 更符合您的需求,您可以使用它们。签名 URL 和下载 URL 都只是提供对数据的只读访问的 URL。签名的 URL 会过期,而下载的 URL 不会。

如以上评论所述,网络库不包含任何访问具有安全规则的文档的方法。如果他们添加此功能,我会更新此答案!