我的Firebase RTD的结构如下:
messages :{
userId1: {
userId2: {sentFrom: userId1, messageText: 'hello user 2 from user 1'}
},
userId2: {
userId1: {sentFrom: userId1, messageText: 'hello user 2 from user 1'}
},
}
如果路径为message/userId1
,我希望user1能够写到数据库。..但如果路径为message/anyOtherUserId/userId1
,我也希望user1能够写到数据库
我在规则中使用的json如下所示。...当我击中路径message/userId1
时成功了...但是当我击中message/anyOtherUserId/userId1
时它返回“模拟集被拒绝”
{
"rules": {
"messages": {
"$userId": {
".write": "$userId === auth.uid ? true : (root.child($userId).val()===auth.uid ? true : false)",
},
}
}
}
答案 0 :(得分:3)
您可能需要进一步级联规则。在模拟中尝试以下方法:
{
"rules": {
"messages":{
"$userId":{
".write": "$userId === auth.uid",
"$userIdChild": {
".write": "$userIdChild === auth.uid"
}
}
}
}
}
我希望这会有所帮助!