我正在开发一个从Firebase检索帖子的应用程序。问题是我想检索前20个帖子并显示在表格中。当用户单击下一步按钮时,它将检索接下来的20个帖子并显示等等。

我知道Firebase提供以下方法


queryLimitedToFirst
queryLimitedToLast
queryStartingAtValue
queryEndingAtValue
queryEqualToValue


但是,如何结合使用它们来检索所需的结果呢?

这是我拥有的数据的结构:

ios - 在Firebase中查询有限的数据-LMLPHP

最佳答案

您应该按某些属性排序查询(我通常使用时间戳)。这可以按照最新到最旧的顺序组织您的订单。订购它们时,应限制它们:

queryOrdered(byChild: "timestamp").queryLimited(toLast: UInt(limit))

如您所见,我们可以将结果限制为我们喜欢的任何数量。您可以使用它每次阅读您的信息,以获得20个结果。
因此,第一次调用时限制为20,下次调用时限制为40,依此类推。请记住,这将返回上次调用中已返回的帖子。

相反,您可以将其与queryStartingAtValue结合使用,并使用您的上一个帖子tiemstamp-这将“跳过”您以前的结果,仅返回您需要的20个帖子。

这只是一个想法,但我认为它应该像预期的那样工作。

10-08 07:49
查看更多