Firebase规则无法正常运行

时间:2017-01-17 07:18:40

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

这是我在firebase中的数据结构,我在Projects标记下有多个项目,每个项目包含staff个键,包含多个人员,每个人员都包含attendance个键,其中包含多个属性OT1OT2等现在我希望OT1只能保留数值。

在图片中查看我的数据结构 enter image description here

我尝试过这条规则

{
"rules": {
".read": true,
".write": true,
"Projects": {
  "$pid":{
  "staff":{
    "$sid":{
    "attendance":{
      "OT1":{".validate": "newData.isNumber()"}
    }
    }
  }
  }
},
"Empoyees": {
  "$staffid": {
    ".indexOn": "Type",
    "project": {
      ".indexOn": [
        "project2",
        "project1"
      ]
    }
  }
}
}
}

但它仍然允许我保存文本数据 它不限制我这个陈述

attendanceRef.child("OT1").setValue("ABCDEFGH");

我应该在规则中做些什么。

1 个答案:

答案 0 :(得分:0)

哦,终于搞错了。

规则应该是:

{
"rules": {
".read": true,
".write": true,
"Projects": {
"$pid":{
 "staff":{
   "$sid":{
     "attendance":{
      "$aid":{  // **this was the missing in my question**
        "OT1":{".validate": "newData.isNumber()"},
        "OT1_B":{".validate": "newData.isNumber()"},
        "OT2":{".validate": "newData.isNumber()"},
        "Total Mins":{".validate": "newData.isNumber()"}
   }
  }
 }
}
}
},