我有一个用于添加新数据的安全规则
"CATEGORIES": {
"$CATEGORIES": {
".write": "root.child('USERS/' + auth.uid + '/type').val() == 'admin' && !data.exists() || root.child('USERS/' + auth.uid + '/type').val() == 'admin' && root.child('MODES/delete').val() == 'yes'",
"$DATA": {
".write": "root.child('USERS/' + auth.uid + '/type').val() == 'admin'",
}
}
}
它用于防止子节点重复或被覆盖!data.exists()
rule.
问题是,它不会让我删除具有此规则的子项,因为数据存在。为了解决这个问题,我添加了root.child('MODES/delete').val()
如果我将其设置为“是”,则允许我删除它。
我怎样才能拥有它,这样我就不必做这个工作了?所以我可以没有重复项,但如果我愿意的话也可以删除孩子?
为了允许创建但不允许覆盖,!data.exists()
工作正常。要允许删除,您可以使用!newData.exists()
.
所以大家在一起:
// create or delete, but no update/overwrite
".write": "!data.exists() || !newData.exists()"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)