javascript – 基于数据对象的Firebase用户写入/读取规则

我正在使用firebase,我的用户设置如下:

{
    "firebase-account-123": {
        "users": {
            "simplelogin:1": {
                "properties"{ "name": "john doe","email": "user@email.com" }
                "children": {
                    "simplelogin:2":{ "name": "user 2","email": "user2@email.com" },}
            },"simplelogin:2": {
                "properties"{ "name": "user 2","email": "user2@email.com","disabled": false }
            }
        }
}

我有“孩子”,帐户经理应该有权访问.我是新手,我正在尝试解决我遇到的一些权限问题.

我的规则目前只允许用户读/写自己的数据.

“.read”:“auth.uid == $userid”,“.write”:“auth.uid == $userid”

有谁知道我怎么能这样做,所以他们也有能力为他们的“子”对象中列出的用户写入/读取数据(可能只是在属性对象中)?

解决方法

如果要允许子桶下列出的用户ID也读取和写入数据,请尝试在安全规则中使用hasChild()方法.

例如,使用您在上面概述的相同数据结构:

{
  "rules": {
    ".read": false,".write": false,"users": {
      "$userid": {
        ".read": "auth.uid == $userid",".write": "auth.uid == $userid","properties": {
          ".read": "root.child('users').child(auth.uid).child('children').hasChild($userid)"
        }
      }
    }
  }
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...