bda*_*daz 9 firebase firebase-security
我有一个添加新数据的安全规则
"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'",
}
}
}
Run Code Online (Sandbox Code Playgroud)
它用于防止使用!data.exists()规则重复或覆盖子节点.
问题是,它不会让我删除具有此规则的子项,因为数据存在.为了解决这个问题,我添加了root.child('MODES/delete').val()数据以允许我删除它,如果我将其设置为"是".
我怎么能拥有它所以我不需要做这个工作?所以我可以没有重复,但如果我愿意也可以删除孩子?
Kat*_*ato 22
允许创建但不覆盖,!data.exists()工作正常.要允许删除,您可以使用!newData.exists().
所以一起:
// create or delete, but no update/overwrite
".write": "!data.exists() || !newData.exists()"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4359 次 |
| 最近记录: |