数据库:
services
-JKkhjghjjlhk55454 // this is servicesId
category: "veterinarian"
idUser: "GHkJjkhg54GGG"
roleIns:"user"
-Hkhfhgh64545ddddddd
category: "veterinarian"
idUser: "Hhjhgjhg455545e"
roleIns:"admin"
users
Hhjhgjhg455545e // this is uid
name: "John"
role: "admin"
GHkJjkhg54GGG
name: "Anie"
role: "user"
规则:
{
"rules": {
"services": {
".read": "data.child('$servicesId').child('idUser').val() == auth.uid || data.child('$servicesId').child('roleIns').val() == 'admin'"
}
}
}
'$servicesId'
不起作用,原因有两个:
{
"rules": {
"services": {
"$servicesId": { // 👈
".read": "data.child('idUser').val() == auth.uid || data.child('roleIns').val() == 'admin'"
}
}
}
}
现在我们在实际的单个服务节点上将规则声明得更深一层,这样就可以访问其正下方的 idUser
和
roleIns
的数据。
services
- 因为规则不是过滤器。