如何为firebase编写规则

如何为firebase编写规则,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我不熟悉firebase规则,我的firebase db如下 分贝 现在,我想要一个规则,如果学生a是classA的管理员,那么他被允许获取classA的数据,否则学生被拒绝获取classA的数据,我尝试了下面的方法,但失败了 { rules:{ school1 :{ classA : { ".read":"root.child('school1/students').child('roles/admin').child('exists'

我不熟悉firebase规则,我的firebase db如下

分贝 现在,我想要一个规则,如果学生a是classA的管理员,那么他被允许获取classA的数据,否则学生被拒绝获取classA的数据,我尝试了下面的方法,但失败了

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

提前感谢

您需要这样的东西:

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

但是studentA必须等于auth令牌中的用户id

我刚刚尝试过,它正在工作。你真的被认证了吗?用户id真的等于学生id吗?True真的是布尔值吗?不是字符串?我没有用uid
midhunStudent@gmail|com:{roles:{admin:{exists:true}}}
像这样的iam在firebase中存储对象,那么我如何将学生uid等同于经过身份验证的id@PipiksNo!我不是在说电子邮件,我是在说用户id!如何将用户与数据库中的学生链接?如果我将auth.uid修改为mailid,那么在firebase
{“rules”:{“school1”:{“classA”:{.read”:“auth!=null&&root.child('school1')。child('students')。child('midhun@gmail|com').child('roles').child('admin').child('exists').val()==true“}}}
然后我得到了正确的答案,但我想动态地检查@Pipiks
{
    "rules": {
        "school1": {
            "classA": {
                ".read":"auth != null && root.child('school1').child('students').child(auth.uid).child('roles').child('admin').child('exists').val() === true" 
            }
        }
    }
}