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