这就是我所拥有的:
"products": {
"$pid": {
".read": true,
".write": "auth != null && (newData.child('quantity').val() > 0)",
".indexOn": ["subgroup", "group", "visibility"]
},
".read": true
现在,如果我尝试删除,我会遇到异常。
firebase.js:281 FIREBASE警告:设置为/ products / -KRdvStz-6EQ6OUJJcld失败:permission_denied
我真的需要有数量> = 0的验证规则。但我还需要能够删除。
知道这里需要做什么吗?
答案 0 :(得分:1)
要验证数据结构,您应该使用.validate
规则:
"products": {
"$pid": {
".read": true,
".write": "auth != null",
".validate": "newData.child('quantity').val() > 0",
".indexOn": ["subgroup", "group", "visibility"]
},
".read": true
验证规则不会在数据删除时被触发,特别是允许它们很容易用于此。
如果您坚持使用写入规则进行验证,您也可以这样做:
".write": "auth != null && (!newData.exists() || newData.child('quantity').val() > 0)",