为特定用户提供访问权限的 Firebase 存储安全规则

Posted

技术标签:

【中文标题】为特定用户提供访问权限的 Firebase 存储安全规则【英文标题】:Firebase Storage security rules to provide specific users access 【发布时间】:2020-08-26 21:37:25 【问题描述】:

我已经构建了一个应用,允许客户购买使用 Firebase 存储存储的下载文件的访问权限。当他们进行购买时,Storage 中的资产 ID 会使用 Firebase Firestore 链接到他们的用户 ID。 似乎无法更新 Firebase 存储服务器端安全规则以使用 Firestore 记录。 但是我发现可以向 Firebase 用户添加自定义声明或更新存储中的图像元数据以包含用户 ID。

https://firebase.google.com/docs/auth/admin/custom-claims

https://firebase.google.com/docs/storage/web/file-metadata

在扩展此应用以检查用户是否可以使用 Firebase 存储服务器端安全性访问他们尝试下载的资产方面,这两种方法(更新用户自定义参数或更新存储资产元数据)是否是更好的方法规则?

谢谢

【问题讨论】:

【参考方案1】:

没有一个比另一个更好。它们只是用于不同工作的不同工具。自定义声明提供了一种让用户访问对象集的方法,这些对象由匹配这些对象的规则定义。元数据提供了一种标记单个对象以供规则定义的访问的方法。在大多数情况下,它们在效用上并没有真正重叠。选择最适合您的用例。

【讨论】:

以上是关于为特定用户提供访问权限的 Firebase 存储安全规则的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 规则:动态授予特定用户访问权限

如何为每个用户提供 Firebase 存储中的特定文件夹

request.auth != null 和 request.auth == null 不提供访问权限,其中 true 提供 - firebase 存储

如何只允许特定用户在 Firebase 中创建新用户?

私有登台S3存储桶的策略

S3 存储桶策略授予/限制对特定联合用户的访问权限