我正在创建一个instagram风格的Feed,并试图找出如何根据您关注的人来对帖子进行分页。Firebase Swift分页新闻Feed
我的数据结构如下:
posts:
user1:
post1
post2
user2:
post3
post4
user3:
post5
post6
post7
user-following:
user1:
user2
user3
所以帖子被创建后用户组织。我也有一个当前用户关注的人的结构。因此,我抓取当前用户所关注的用户的uid,然后转到帖子部分,并获取这些用户的所有帖子,并且每个帖子都有一个createdAt值。
当我使用queryByChild(“createdAt”)时,它将每个用户的数据排序,而不是绝对。 所以它排序user2的帖子,然后user3的帖子,而不是绝对的排序,因为它拉动数据的块。
我需要独立于拥有新闻Feed帖子的用户的最新总体帖子。我可以获取快照中的所有发布信息,但有没有办法对快照进行排序?我需要找到一种方法来让数据库对信息进行整体分类,而不是分块,然后从该分类列表中提取最新的“x”个帖子。
否则,我必须将所有内容都放入我的程序中,然后将它排序到数组中,然后从数组中取出最近的'x'数量的帖子进行分页。问题是,如果有1000个帖子,这是一个巨大的数据拉,将使应用程序超级慢,可能会崩溃。有什么建议么?
Firebase文档非常有帮助。查看[使用iOS上的数据列表](https://firebase.google.com/docs/database/ios/lists-of-data),其中指出* queryLimitedToLast:设置从结尾返回的最大项数*在这种情况下,将其设置为15,这将返回15个'最近'的帖子。将来,请在您的问题中包含有问题的代码以及您的Firebase结构(作为TEXT)。您可能需要查看[如何创建一个最小化,完整和可验证的示例](https://stackoverflow.com/help/mcve) – Jay
@Dirty如果您希望Jay查看您的回复,请使用“@Jay”评论 –
@Jay感谢您的回复。我的问题进一步深入,我必须得到用户关注的人的帖子。因此查询将获取每个用户的帖子,然后转到下一个用户等等,所以一旦观察到所有数据,它就不会对帖子进行排序,而是以块的形式进行排序。所以帖子不会完全排序,但只能由每个用户进行排序。是否有办法在快照中一次抓取所有数据,然后对其进行排序,然后拖动最后的15个? – Dirty