如果作者的 ID 在节点中,则 Firebase 允许在节点中写入
Firebase allowing writes in node if writer's ID in the node
我有一个简单的数据库结构,群组成员可以在其中向群组添加另一个用户。
例如
用户 A 创建了群组 "Coffee Lovers"。
只有用户 A 可以向组中添加人员。
用户 B 现在在该组中。
这也允许 B 邀请。
group-members:{
"-k3ajsdfklje":{ // This is group id
groupName: "Coffee Lovers",
members:{
"kjk2139_erjw92": true, // This is member A
"fekjfqlwke,x9q": true // This is member B
}
}
users:{ // Users node.
kjk2139_erjw92:{
name:"User A"
},
fekjfqlwke,x9q:{
name:"User B"
},
jfkdjklfjklern:{
name:"User C"
}
}
用户 A ("kjk2139_erjw92") 可以将任何人添加到组中。
用户 B ("fekjfqlwke,x9q") 可以将任何人添加到组中。
用户 C ("jfkdjklfjklern") 无法将任何人添加到该组。
我不确定我应该如何围绕这个建立数据库规则。
group-members:{
"$groupId":{
members:{
".read": true, // This list is publically available
".write": "user who is trying to write is authenticated and is included in this list"
// TODO: I don't know how to write this ".write" part!
}
}
}
你可以试试
".write": "data.child(auth.uid).exists()"
我有一个简单的数据库结构,群组成员可以在其中向群组添加另一个用户。 例如 用户 A 创建了群组 "Coffee Lovers"。 只有用户 A 可以向组中添加人员。 用户 B 现在在该组中。 这也允许 B 邀请。
group-members:{
"-k3ajsdfklje":{ // This is group id
groupName: "Coffee Lovers",
members:{
"kjk2139_erjw92": true, // This is member A
"fekjfqlwke,x9q": true // This is member B
}
}
users:{ // Users node.
kjk2139_erjw92:{
name:"User A"
},
fekjfqlwke,x9q:{
name:"User B"
},
jfkdjklfjklern:{
name:"User C"
}
}
用户 A ("kjk2139_erjw92") 可以将任何人添加到组中。 用户 B ("fekjfqlwke,x9q") 可以将任何人添加到组中。 用户 C ("jfkdjklfjklern") 无法将任何人添加到该组。
我不确定我应该如何围绕这个建立数据库规则。
group-members:{
"$groupId":{
members:{
".read": true, // This list is publically available
".write": "user who is trying to write is authenticated and is included in this list"
// TODO: I don't know how to write this ".write" part!
}
}
}
你可以试试
".write": "data.child(auth.uid).exists()"