Firebase 规则:允许推送但不允许更新
Firebase rules: allow push but not allow update
我很难理解如何允许用户在列表中创建新记录,但只允许创建者更新他们自己的帖子。
例如以下结构:
post {
post1: {
author: "user1"
text: "Some text"
}
post2: {
author: "user2"
text: "Some text 2"
}
}
在这里,我希望两个用户都能够创建新帖子。但也要保护 post2 不被 user1 编辑。因此,只有 user1 可以编辑 post1,只有 user2 可以编辑 post2。
您想做这样的事情:
{"rules": {
"post": {
"$id": {
".write": "auth !== null && (!data.exists() || data.child('author').val() === auth.uid)"
}
}
}}
此处仅当用户已登录且 a) 尝试写入的节点为空或 b) 尝试写入的节点由当前用户创建时才允许写入。
我很难理解如何允许用户在列表中创建新记录,但只允许创建者更新他们自己的帖子。
例如以下结构:
post {
post1: {
author: "user1"
text: "Some text"
}
post2: {
author: "user2"
text: "Some text 2"
}
}
在这里,我希望两个用户都能够创建新帖子。但也要保护 post2 不被 user1 编辑。因此,只有 user1 可以编辑 post1,只有 user2 可以编辑 post2。
您想做这样的事情:
{"rules": {
"post": {
"$id": {
".write": "auth !== null && (!data.exists() || data.child('author').val() === auth.uid)"
}
}
}}
此处仅当用户已登录且 a) 尝试写入的节点为空或 b) 尝试写入的节点由当前用户创建时才允许写入。