如何为firebase编写规则

时间:2017-07-31 11:23:02

标签: firebase firebase-realtime-database firebase-security

我是firebase规则的新手,我的firebase数据库如下所示

分贝

school1
   |
   |___classA
   |       |_classData
   |            
   |
   |___students
          |__studentA
          |    |
          |   |__name
          |    |__roles
          |        |
          |        |_admin
          |        |   |__exists : true
          |        |_student
          |            |___exists : true
          |
          |___studentB
                |_name
                |_roles
                    |_admin
                    |    |__exists : false 
                    |_student
                         |_exists : true

现在,我想要一条规则,如果studentA是classA的管理员,那么他被允许获取classA的数据,否则学生被认为获得了classA的数据,我尝试了类似下面的内容但是失败了

{
 rules:{
     school1 :{
         classA : {
              ".read":"root.child('school1/students').child('roles/admin').child('exists').val()==true" 
            }
          }
        }
}  

提前致谢

1 个答案:

答案 0 :(得分:1)

你需要这样的东西:

{
    "rules": {
        "school1": {
            "classA": {
                ".read":"auth != null && root.child('school1').child('students').child(auth.uid).child('roles').child('admin').child('exists').val() === true" 
            }
        }
    }
}  

studentA 需要等同于身份验证令牌中的用户ID