首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有防火墙的嵌套子文档的安全规则

具有防火墙的嵌套子文档的安全规则
EN

Stack Overflow用户
提问于 2022-04-20 17:21:49
回答 1查看 43关注 0票数 0

我试图使用firebase创建一个文本编辑器应用程序,允许用户创建文档,但他们也可以在现有文档中嵌套一个新文档(编辑文档时,他们可以单击一个按钮,在数据库中添加一个新文档,并在重定向到此页面的编辑器中插入一个链接):

用户可以与其他用户共享文档,但是他们也应该可以访问所有嵌套的文档。因此,现在我想知道如何编写安全规则来做到这一点。

我认为构建实时数据库的最佳方法是将所有文档存储在根目录中,然后在每个文档中添加一个parentDocumentpath属性:

代码语言:javascript
复制
{
  "documents": {
    "doc-1": {
      "title":"Lorem ipsum",
      "content": "...",
      "path":"/",
      "owner":"user-1",
      "canAccess":{
        "user-3":true
      }
    },
    "doc-2": {
      "title":"Dolor sit",
      "content": "...",
      "path":"/doc-1/",
      "owner": "user-1"
      "canAccess": {
        "user-2":true
      }
    }
  },
  "users": {
    "user-1": { ... },
    "user-2": { ... },
    "user-3": { ... }
  }
}

↑在下面的示例中,

  • doc-2嵌套在doc-1中。
  • 用户-1可以同时访问doc-1和doc-2。
  • 用户-2只能访问doc-2
  • 用户-3可以同时访问doc-1和doc-2。

但是现在我不知道如何管理安全规则,因为要检查用户是否有访问特定文档的权限,我猜它需要遍历其每个父级(使用其pathparentDocument支柱)。也许我也可以在每个文档上指定canAccess支柱,但是当父文档的canAccess支柱被更新时,我必须更新每个嵌套文档.

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-20 18:13:41

在Firebase实时数据库模型中,权限自动级联向下。这意味着,一旦授予特定路径上的用户(读或写)权限,他们也可以访问该路径下的所有数据。您再也不能在较低级别撤销该权限了。

因此,您的需求实际上与此模型非常匹配,如果遇到问题,我建议您尝试实现它并报告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71943771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档