這裏是我的火力結構:火力地堡規則不正常工作
-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) –