我正在开发一个从Firebase检索帖子的应用程序。问题是我想检索前20个帖子并显示在表格中。当用户单击下一步按钮时,它将检索接下来的20个帖子并显示等等。
我知道Firebase提供以下方法
queryLimitedToFirst
queryLimitedToLast
queryStartingAtValue
queryEndingAtValue
queryEqualToValue
但是,如何结合使用它们来检索所需的结果呢?
这是我拥有的数据的结构:
最佳答案
您应该按某些属性排序查询(我通常使用时间戳)。这可以按照最新到最旧的顺序组织您的订单。订购它们时,应限制它们:queryOrdered(byChild: "timestamp").queryLimited(toLast: UInt(limit))
如您所见,我们可以将结果限制为我们喜欢的任何数量。您可以使用它每次阅读您的信息,以获得20个结果。
因此,第一次调用时限制为20,下次调用时限制为40,依此类推。请记住,这将返回上次调用中已返回的帖子。
相反,您可以将其与queryStartingAtValue
结合使用,并使用您的上一个帖子tiemstamp-这将“跳过”您以前的结果,仅返回您需要的20个帖子。
这只是一个想法,但我认为它应该像预期的那样工作。