我使用的是Firebase。以下是我的一个节点的样子:
--Users
----RandomUID1
----RandomUID2
----RandomUID3
对于规则,这就是我所拥有的:
--"users" : {
----".read": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)",
----".write": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)"
--}
我希望从users
节点读取以保持相同,但我希望只能在users
节点的子节点上进行写入。这样做的原因是,如果我偶然在一天晚上编写了删除整个users
节点的代码,那将是灾难性的。是否可以制定规则,以便不允许在节点本身上写入,但允许写入子节点?
有没有办法确保自己免于因人为错误而可能发生的事故?
答案 0 :(得分:2)
您可以使用变量Firebase variable rules
。在用户节点我没有添加写规则,这不允许数据修改。
"users":{
".read": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)",
"$uid": { //where $uid is child
".read": "auth!==null && auth.uid == $uid",
".write": ""auth!==null && auth.uid === $uid"
}
}