【问题标题】:Firebase Storage Project Level PermissionsFirebase 存储项目级别权限
【发布时间】:2020-03-11 01:34:03
【问题描述】:

我在 Firebase Storage 中存储文件如下:

/{projectId}/{file}

用户基于projectId拥有不同的权限,可以轻松拥有数十(甚至数百)个项目的某种级别的权限。对于每个项目,他或她都被分配了一个角色,该角色决定了允许哪些操作。

用户将这些角色存储在 Firestore 中,但在 Firebase 存储安全规则中无法访问它们。

此外,为每个用户设置具有所有项目角色的自定义声明很容易超过自定义声明的 1000 字节限制。有没有办法在文件访问时查找权限,即更新、删除、读取/下载?

【问题讨论】:

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


    【解决方案1】:

    目前无法通过为存储定义的安全规则访问 Firestore 中的文档。自定义声明是两个产品之间唯一共享的通用权限系统。

    如果您需要更灵活的逻辑,请考虑通过 Cloud Functions 进行路由访问,无论是事前还是事后。

    请随时file a feature request with Firebase support

    【讨论】:

    • 我如何通过云功能“路由”它?我唯一能看到发生的事情是使用 /setCustomClaims,但由于 1000 字节的限制,我什至无法按用户添加所有项目的权限。现在,如果有人将链接复制到存储文件,任何人都可以下载它,只要他们已经登录,无论他们的项目级别权限如何。您是否建议我以某种方式使用云函数创建自己的下载 url,然后从函数中的存储下载文件并重新传递(似乎仍然不能保护存储 url,尽管现在更难获得)?跨度>
    • 强制客户端使用 HTTP 或可调用函数来访问数据,而不是使用产品 SDK。该功能可以检查他们正在尝试做的事情是否正常。例如:medium.com/firebase-developers/…
    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 2018-08-30
    • 2018-11-29
    • 1970-01-01
    相关资源
    最近更新 更多