我有一个家庭,A,b,c,d,A是领导者。我们有一个入侵者,E。我们只希望b,c,d读取/写入A的数据。
所有这些字母(b,c,d,.)将是UID的
以下是我到目前为止所拥有的:
Everyone是通过电子邮件认证的。人们向A发送请求,以便允许其加入小组。如果他接受,他们可以读/写他的。
数据库防火墙的设计
{
"Leaders" : {
"A" : {
"ALLOWED" : {
"b" : 0,
"c" : 0,
"d" : 0
},
"DATA" : {
"blah blah1" : "content writable by bcd",
"blah blah2" : "content writable by bcd"
},
"REQUESTS" : {
"E" : 0
}
}
}
}我可以使用CRUD移动b、c、d,但是如何制定规则,以便只有中的人允许为每个领导者读写数据?
{
"rules": {
".read": "auth != null",
".write": "auth != null"
"Leaders":{
".write": "$uid == ????"
}
}
}谢谢你的帮助!
发布于 2016-11-28 15:29:30
应该检查节点是否在当前领导下存在:
{
"rules": {
"Leaders":{
"$leaderuid": {
".write": "$leaderuid == auth.uid",
"DATA": {
".write": "data.parent().child('ALLOWED').child(auth.uid).exists()"
}
}
}
}
}我改变的东西:
auth.uid,如关于保护用户数据的文档中所描述的那样。DATA节点中时,用户才能在ALLOWED下进行写入。https://stackoverflow.com/questions/40838578
复制相似问题