我发现没有办法将安全规则设置为阻止孩子“删除和更新”。
".write": "!data.exists() && newData.exists() && !newData.exists()"
这没有意义。
答案 0 :(得分:3)
为了将来参考,Firebase控制台允许您测试数据库安全规则,以便在发布这些规则之前找到可行的方法。话虽如此,如果我正确理解您的问题,您希望允许用户添加到节点,但不能删除或更新。您正在寻找以下内容:
{
"rules": {
...
"childNodeName": {
".write": "!data.exists()"
}
}
}
你不应该需要其他两个条件。更不用说,他们永远不会解决这个问题,因为这些条件无法满足。
如果您需要在路径中添加多个子项,但您不希望用户在添加这些子项后修改这些子项,您也可以使用通配符:
{
"rules": {
...
"childNodeName": {
"$pushId": {
".write": "!data.exists()"
}
}
}
}