这里是我的火力结构:火力地堡规则不正常工作
-posts
-public
-countryCode
-US
-KeJ9qrPZYWD-b0AdQ3I
-timestamp:1488544558698
-postAuthor:TT4l2xyIOFRXI3RZINffcSFs67O2
-KeAVVwWQ-OuwyMRycI4
-timestamp:1488544595373
-postAuthor:TT4l2xyIOFRXI3RZINffcSFs67O2
-users
-TT4l2xyIOFRXI3RZINffcSFs67O2
而且我想允许用户阅读从过去24小时或帖子,如果用户是帖子的作者则没有限制,所以我做了我的火力点像这样的规则:
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"posts":{
".write" : "auth != null",
"public":{
"countryCode":{
"$countryCode_id":{
"$post" :{
".read" : data.child('postAuthor').val() === auth.uid || data.child('timestamp').val() > (now - 86400000)
}
}
}
}
}
}
}
,但它不工作,我可以编写一个新的,但不能读取任何东西,即使职位在指定的时间或由目前的作者提出,有什么不对?
编辑: 好的,所以我发现规则的规则:“规则不是过滤器”,它破坏我的想法一点点,因为我需要阅读访问我的帖子的父母,但如果我会标记为已读我的帖子将被读取无论作者或时间将会是级联的原因 - 非常令人沮丧:(所以现在我需要弄清楚如何做到这一点。我的第一个想法是创建另一条路径所有帖子,并从那里获取所有帖子,其中所有帖子都将被标记为read:true,然后使用observesingleevent(.value)获取每个帖子的关键字,并直接观察当前帖子在另一个分支上,我可以设置我的读写权限,我是否想好?
从编辑部分它听起来你需要阅读关于[数据结构化和非规范化]的文档(https://firebase.google.com/docs/database/ios/structure-data#best_practices_for_data_structure) –