我有这套规则:
{
"rules": {
"facebook_users": {
"$user": {
".read": "$user == auth.id",
".write": "$user == auth.id",
"userData": {
"maxProjects": {
".validate": false
},
"userProjects": {
".validate": ???
}
}
}
}
}
}
如果userProjects
,我想让 用户无法将子项添加到userProjects.length > userData.maxProjects
数组中。由于".validate": false
规则,用户被拒绝在maxProjects中写入。如何将userProjects的长度与maxProjects进行比较?
如果不可能,那么这样做的正确方法是什么?
答案 0 :(得分:4)
您可以使用root
特殊变量和child()
进行此比较:
{
"rules": {
"facebook_users": {
"$user": {
".read": "$user == auth.id",
".write": "$user == auth.id",
"userData": {
"maxProjects": {
".validate": false
},
"userProjects": {
".validate": "data.val().length < root.child('facebook_users').child($user).child('userData/maxProjects').val()"
}
}
}
}
}
}
答案 1 :(得分:1)
您是否阅读过this?
<强>父()强>
获取父位置的RuleDataSnapshot 返回值:
RuleDataSnapshot
- 父位置的RuleDataSnapshot。