[英]Cannot figure out Firebase Database structure
現在,我已經完全重做了該數據庫幾次,但我想不通這一切。
目前的基本想法是用戶發表帖子,人們可以提交對此的回復。 在視圖1上,查看“已發起的帖子”,在視圖2上,您會看到您已回復的所有帖子,在視圖3上,您可以單擊到特定帖子並查看所有回復,在視圖4上,您可以查看詳細信息任何特定回復的頁面。
我已經完成了所有工作,但是在實現一個朋友系統和刪除系統之后,我遇到了兩個主要問題。
我將提供一個示例帖子來幫助解釋:
查看1:
您朋友列表中的一堆主題
談論貓談論汽車談論雨燕
查看2:
過去您加入過關於狗的帖子過去您加入過關於汽車的帖子剛剛回復的關於貓的帖子
點擊貓咪帖子后查看3:
用戶1:貓很爛用戶2:貓很酷
單擊用戶后查看4:
該帖子和該用戶的詳細視圖
鮑勃·鮑勃的照片“貓吮吸”
我需要用戶能夠擁有視圖3和視圖4的自定義視圖,因為我希望他們能夠刪除某些帖子和個別帖子。
因此,如果某人真的不喜歡某人說的話,或者不是用戶1發出的巨魔提交,他們就可以刪除它,而不是在貓下沒有用戶1和用戶2。
問題是,我目前只是從帖子的“回復”子項下提取所有回復。我可以通過從數組中抓取臨時刪除視圖中的帖子,但是重新加載頁面時將其加載再次整理所有帖子,因此顯然用戶需要他們自己的位置,他們一直在跟蹤對主帖子的各個回復。
例如,我需要為每個用戶提供某種方式來引用“貓很酷”和“貓很爛”
在View 2上,可以通過在用戶信息中刪除對該帖子的引用來輕松刪除它們,而這些信息僅是在他們首先回復時創建的,但是除此之外,我不知道如何獲得個人回復。用戶。
非常粗略地講,因為在這一點上我已經做了很多次重做:
Users
09283490823
RepliedToPosts
ABCDEFG : true
FriendsPosts
friendUID : postID
friendUID: postID
// reworked all of this, dunno how I want this structured anymore but this part will be ok
posts:
ABCDEFG
*replies*
因此,我觀察了View1上的friendsPosts,觀察了可以刪除的View 2上的repliedToPosts,然后在view3上,我進入了帖子並查看了所有回復,然后在View 4上進一步查看了各個級別。
直到最后我忘了我希望能夠刪除View3上的各個帖子,並且一切都還不錯,但我還沒有找到實現它的方法。
有任何想法嗎? 我不能只是將個人回復發送給所有“參與者”,因為人們可以遲到……真的不知道。
您需要做的是盡可能“散布”您的數據。 這意味着將數據(在您的情況下為響應)復制到數據庫中的多個位置,以便更輕松地獲取它們。 您可以有一個名為“ postsReplies”的節點,其中包含帖子ID和答復,還有一個名為“ repliesByCategory”的節點,您將在其中看到類似的內容。
Cats: {
some_cat_reply_Id: {
// the reply data
}
}
扇出發生在客戶端-當用戶發布答復時,它被發布到所有節點。
以下幾個鏈接可以幫助您了解有關“扇出”數據的更多信息:
https://firebase.googleblog.com/2015/10/client-side-fan-out-for-data-consistency_73.html?m=1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.