我在root中有message对象,它只是字符串数组。 我想允许用户推送新对象。如果他们可以推送到root消息,他们应该拥有写入权限,这意味着他们可以轻松地用其他有效数据替换整个消息对象。我应该写什么样的安全规则来避免这种情况?
答案 0 :(得分:6)
如果数据不存在,您可以编写规则以允许添加数据,但可以使用以下规则阻止数据被修改或删除。
".write": "!data.exists() && newData.exists()"
'data'变量是Firebase中的当前数据。如果允许写入,'newData'是结果数据。
有关详细说明,请查看Security & Rules API。
答案 1 :(得分:5)
完整的规则定义应为
{
"rules": {
".read": false,
"feedback": {
"$key": {
".write": "!data.exists()"
}
}
}
}
这可让您推到/feedback
位置。您可以自由选择变量名称$key