我正在创建一个Instagram风格的Feed,并试图找出如何根据您关注的人对帖子进行分页。
我的数据结构如下:
posts:
user1:
post1
post2
user2:
post3
post4
user3:
post5
post6
post7
user-following:
user1:
user2
user3
因此,帖子由创建帖子的用户组织。我还有一个当前用户关注的人的结构。所以我抓住了当前用户所关注的用户的uid,然后转到帖子部分并获取这些用户的所有帖子,每个帖子都有一个createdAt值。
当我使用queryByChild(" createdAt")时,它会对每个用户的数据进行排序,而不是绝对的。 因此它会对用户2的帖子进行排序,然后对用户3的帖子进行排序,而不是进行绝对排序,因为它会以数据块的形式提取数据。
我需要独立于拥有新闻Feed帖子的用户的最新整体帖子。我可以在快照中获取所有帖子信息,但有没有办法对快照进行排序?我需要找到一种方法让数据库整体排序信息,而不是块,然后拉出最新的' x'该排序列表中的帖子数量。
否则我必须将所有内容都放入我的程序中,然后将其排成一个数组,然后拉出最新的' x'分组中用于分页的帖子数量。问题是,如果有1000个帖子,这将导致应用程序超级缓慢且可能崩溃。有什么建议吗?
答案 0 :(得分:1)
在我看来,这里唯一的方法是:
1)浏览您关注的每个用户
2)获取最后X
个帖子
3)按日期排序结果数组
4)显示结果数组的最后X
。
如果你有table view
:
要进行无限滚动,您需要存储此数组并从中获取帖子。
在刷新时 - 重新加载帖子数组。
我有相同的结构,我认为这是唯一的方式,我们如何做到。
希望它是正确的并且有帮助