我在问我是否有这个 firebase 数据库
Misters
+ 7m1fyYchDscr8tUeI13uPXvdDvM2
+ gvTVc3gwRfTz3WL48vTGiiiTKZ22
- vWZ55LGiraaIErIiiVN4NVQc6Eh1
active_type:true
age: 27
如果其父节点被删除,如何防止添加新节点或更新现有节点 (vWZ55LGiraaIerIiiVN4NVQc6Eh1)?
例如我有阻止更新的规则
{
"rules": {
".read": true,
".write": "auth != null",
"Misters": {
"$Misterid": {
"active_type:true": {
".validate": "(data.val() == null) || (data.isString() && (data.val().length == 0))"
}
}
}
}
但如果找不到父项,我想阻止
最佳答案
- 将所有添加的 $Misterid 存储在名为 MistersAdded 的新节点中。这可以通过使用云功能自动完成
- 在下面添加规则
这包括一个 exists() 方法,该方法将检查 MistersAdded map 以查看它是否已被创建。如果您希望能够让用户删除 map ,请添加 '|| data.val() == null' 在写规则后面。
{
"rules": {
".read": true,
".write": "auth != null",
"Misters": {
"$Misterid": {
"active_type:true": {
".write": !root.child('MistersAdded').child($Misterid).exists()
".validate": "(data.val() == null) || (data.isString() && (data.val().length == 0))"
}
}
}
}
关于android - Firebase 规则如何在其父级被删除时防止添加或更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46193945/