首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些用户的Firebase读写权限

某些用户的Firebase读写权限
EN

Stack Overflow用户
提问于 2016-11-28 06:50:40
回答 1查看 1.7K关注 0票数 2

我有一个家庭,A,b,c,dA是领导者。我们有一个入侵者,E。我们只希望b,c,d读取/写入A的数据。

所有这些字母(b,c,d,.)将是UID的

以下是我到目前为止所拥有的:

Everyone是通过电子邮件认证的。人们向A发送请求,以便允许其加入小组。如果他接受,他们可以读/写他的。

数据库防火墙的设计

代码语言:javascript
复制
{
  "Leaders" : {
    "A" : {
      "ALLOWED" : {
        "b" : 0,
        "c" : 0,
        "d" : 0
      },
      "DATA" : {
        "blah blah1" : "content writable by bcd",
        "blah blah2" : "content writable by bcd"
      },
      "REQUESTS" : {
        "E" : 0
      }
    }
  }
}

我可以使用CRUD移动b、c、d,但是如何制定规则,以便只有中的人允许为每个领导者读写数据?

代码语言:javascript
复制
    {
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
    "Leaders":{
    ".write": "$uid == ????"
    }
  }
}

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-28 15:29:30

应该检查节点是否在当前领导下存在:

代码语言:javascript
复制
{
  "rules": {
    "Leaders":{
      "$leaderuid": {
         ".write": "$leaderuid == auth.uid",
         "DATA": {
           ".write": "data.parent().child('ALLOWED').child(auth.uid).exists()"
         }
       }
    }
  }
}

我改变的东西:

  • 删除顶层读/写规则。否则,任何经过身份验证的用户都可以读取/写入所有数据,并且再也不能在较低级别上获取该权限。
  • 领导者可以写出他们的整个节点。我在这里使用auth.uid,如关于保护用户数据的文档中所描述的那样。
  • 只有当用户的uid存在于DATA节点中时,用户才能在ALLOWED下进行写入。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40838578

复制
相关文章

相似问题

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