我很难弄清楚Firebase规则应该如何限制我的阅读/写作。
我正在使用Firebase中的队列系统,其结构如下
"eventQueues": {
"event1": {
"owner": "simplelogin:1",
"queue": {
"simplelogin:2": {"someinfo": "..."},
"simplelogin:3": {"someinfo": "..."},
"simplelogin:4": {"someinfo": "..."}
}
},
"event2": {...},
...
}
我想实现以下目标:
任何人都可以阅读数据
".read": true
任何用户都可以创建(并编辑任何部分)某个活动,但必须是该活动的所有者。
我相信这可以通过以下方式实现:
".write" : "auth != null &&
(data.child('owner').val() == auth.uid ||
newData.child('owner').val() == auth.uid)"
这是我遇到麻烦的地方,我能够提出的最好的是以下内容(将与上面的写规则相结合)
".write": "!data.child(auth.uid).exists()"
但据我所知,这仍然允许用户写入除了与他们自己的uid相对应的队列条目之外的任何内容。
那么我能以任何方式制定一个规则,允许非事件所有者只将自己添加到队列中,而不是其他任何东西吗?