.remove()方法的Firebase安全规则

.remove()方法的Firebase安全规则,firebase,Firebase,我想对我的数据限制.remove()方法-只允许作者/创建者能够.remove节点。这可能吗 我有标准的用户树、一对数据树geoFire和一个名为details的树“详细信息”的节点包含时间戳和用户(与auth.uid匹配)等条目。Firebase中的删除意味着您正在向当前包含数据的位置写入无/空数据: ".write": "!data.exists() || newData.exists()" 快速表格,确保我得到了所有这些: data. newData. exists() exi

我想对我的数据限制.remove()方法-只允许作者/创建者能够.remove节点。这可能吗


我有标准的用户树、一对数据树geoFire和一个名为details的树“详细信息”的节点包含时间戳和用户(与auth.uid匹配)等条目。

Firebase中的删除意味着您正在向当前包含数据的位置写入无/空数据:

".write": "!data.exists() || newData.exists()"
快速表格,确保我得到了所有这些:

data.     newData.
exists()  exists()  .write
--------+---------+--------
false     false     true
false     true      true
true      false     false
true      true      true

您需要
data.exists()
规则才能添加到验证方法中,否则添加节点将失败:

i、 e.删除的说明:

db.ref('path/to/node/' + user).remove()
规则:

".write": "auth != null",

// Delete or Add
".validate": "data.exists() || (newData.hasChildren(['child1', 'child2', '...'])" ,

谢谢你,弗兰克。如果我有'details'和'name'、'age'和'user'的子节点,其中user=authData.uid,我是否只是将规则放在我的“details”中:{在安全性和规则中?如果我希望当前用户(通过auth.uid)能够.remove(),我可以说:“auth.uid==data.child('user').val()”?请阅读安全和规则快速启动和指南:当然我已经阅读了。登录用户保护记录的唯一类似示例是Firebase auth自动创建的用户节点/分支。什么是$user?显然是一种变量类型,但它是如何映射到用户节点的?这没有解释清楚。无论如何,谢谢虽然如此。我看到了,但是$other是如何映射到任何东西的?为什么有人会允许在数据库中随机输入?当然,他们会有一个父节点来进行归档,并且在那里应用规则似乎是合乎逻辑的。我只是不太在意$user或$other。如果我把$otherone、$othertwo、$other3放在$otherone下,firebase怎么知道把数据放在它下面呢herone是说我有一个名为“otherone”的节点?谢谢Frank的帮助。