新闻Feed中的Firebase Swift分页

时间:2017-05-31 01:32:44

标签: ios swift firebase pagination firebase-realtime-database

我正在创建一个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个帖子,这将导致应用程序超级缓慢且可能崩溃。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在我看来,这里唯一的方法是:

1)浏览您关注的每个用户

2)获取最后X个帖子

3)按日期排序结果数组

4)显示结果数组的最后X

如果你有table view

要进行无限滚动,您需要存储此数组并从中获取帖子。

在刷新时 - 重新加载帖子数组。

我有相同的结构,我认为这是唯一的方式,我们如何做到。

希望它是正确的并且有帮助