0
我目前正在創建Firebase安全規則,以防止用戶將節點設置爲空並刪除該節點中的所有數據。Firebase數據庫刪除安全規則
這是我的架構
{
"folder" : {
"item1" : {
"dataset1" : {
"data1" : 123,
"data2" : 456,
"data3" : 789
}
}
}
}
這是我的規則
{
"rules": {
"folder": {
// users cannot delete items in the node folder
".write": "newData.exists()",
// item is a variable
"$item": {
"dataset1": {
// dataset1 must have certain nodes and can't be deleted (set to null)
".validate": "data.hasChildren(['data1', 'data2', 'data3']) && newData.exists()",
"data1": {".validate": "newData.isNumber()"},
"data2": {".validate": "newData.isNumber()"},
"data3": {".validate": "newData.isNumber()"},
// using the variable $other means any node that isn't data1, data2, data3 is denied
"$other": {".validate": false}
}
}
}
}
}
使用內置的模擬器我得到這些結果:
這工作時,位置設置爲「/ folder/item1」和「/ folder/item1/data」 SET1"
如果我在Data1有更深層次的節點,他們將全部被刪除,因爲寫是允許的。
感謝您閱讀。打開任何答案,最好我不需要更改架構。
嗨,我在第2點使用了你的建議。我用「newData.hasChildren([example,example])」來確保這些孩子不能被刪除。謝謝你的幫助! –