我看到没有办法将安全规则设置为防止孩子的"删除和更新"。
".write": "!data.exists() && newData.exists() && !newData.exists()"
这说不通。
Firebase 控制台允许您测试数据库安全规则,以便在发布这些规则之前找出有效的规则,以供将来参考。话虽如此,如果我正确理解您的问题,您希望允许用户添加到节点,但不允许删除或更新。你会寻找类似的东西:
{
"rules": {
...
"childNodeName": {
".write": "!data.exists()"
}
}
}
你不应该需要另外两个条件。更不用说,它们永远不会解决为真,因为这些条件无法满足。
如果需要将多个子项添加到路径,但不希望用户在添加这些子项后对其进行修改,也可以使用通配符:
{
"rules": {
...
"childNodeName": {
"$pushId": {
".write": "!data.exists()"
}
}
}
}