我一直在搞乱我的firebase数据库规则,试图允许没有身份验证的用户只编辑我数据库中的某个孩子,但我似乎无法弄明白。
这是数据库结构:
所以我试图允许没有身份验证的用户编辑videoID,但不仅如此,我还需要规则来忽略房间ID(本例中为5555),这意味着它只允许读取和编辑< strong> rooms /(roomid)/ videoID
感谢各种帮助!
答案 0 :(得分:0)
也许是这样的:
{
"rules": {
".read": true,
".write": "auth != null",
"rooms": {
"$roomId": {
"videoID": {
".write": true
}
}
}
}
}
允许具有身份验证功能的用户编辑videoID
旁边的其他字段。
但如果你想要甚至认证的用户,也只能编辑videoID
,那么规则是:
{
"rules": {
".read": true,
".write": false,
"rooms": {
"$roomId": {
"videoID": {
".write": true
}
}
}
}
}
请记住,当规则集true
不会遍历子规则时,但如果设置false
,它将继续检查子规则。
答案 1 :(得分:0)
Firebase数据库规则允许变量,并且可以在不同深度处具有不同的规则。
在您的情况下,以下规则允许任何用户(经过身份验证或未经过身份验证)访问/rooms/$roomid/videoID
但只有经过身份验证的用户才能访问整个/rooms/
树。
{
"rules": {
"rooms": {
".read": "auth != null",
".write": "auth != null",
"$roomid": {
"videoID": {
".read": "true",
".write": "true",
}
}
}
}
}