我已经完全重做了这个数据库几次,我无法弄清楚这一切的难题。
目前的基本想法是用户发帖,人们可以提交回复。在视图1上,查看“已启动的帖子”,在视图2上,您可以看到您回复的所有帖子,在视图3中,您可以单击特定帖子并查看所有回复,在视图4中,您可以看到详细信息任何特定回复的页面。
我已经完成了所有工作,但在实施好友系统和删除系统后,我遇到了两个主要问题。
我将做一个示例帖子来帮助解释:
查看1:
朋友列表中的一堆主题
谈论猫 谈论汽车 谈谈斯威夫特
观看2:
发布你过去加入了关于狗的事情 发布过去你加入过关于汽车的帖子 关于你刚回应的猫的帖子
点击猫贴后查看3:
用户1:猫吮吸 用户2:猫很酷
点击用户后查看4:
该帖子及该用户的详细视图
鲍勃 Bobs图片 “猫吮吸”
我需要用户能够自定义视图3和4的视图,因为我希望他们能够删除某些帖子和个别帖子。
所以不是猫下有用户1和用户2,如果有人真的不喜欢别人说的话,或者只是来自用户1的巨魔提交,他们就可以删除它。
问题是我目前只是从帖子的“回复”子项下面提取所有回复。我可以通过从数组中抓取它来暂时从视图中删除帖子,但是当页面重新加载时再次加载所有帖子,显然用户需要他们自己的位置,他们会跟踪对主帖的个人回复。
例如,我需要一些方法让每个用户都能引用“猫很酷”和“猫吮吸”
在视图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,观察我可以删除的View2上的repliedToPosts,然后在view3上我只是进入帖子并查看所有回复,然后在视图4上查看个人水平。
我让一切都运转正常,花花公子直到最后我忘记了我想要删除View3上的个别帖子,而我还没有找到实现它的方法。
有什么想法吗?我不能只是向所有“参与者”发送个人回复,因为人们可以加入最近...真的不知道。
答案 0 :(得分:0)
你需要做的是"扇出"你的数据尽可能多。 这意味着将数据(在您的情况下为responeses)复制到db中的多个位置,以便更容易获取它们。 你可以有一个名为" 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