Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有限制/偏移可能解决方案的Firebase查询_Ios_Firebase - Fatal编程技术网

Ios 具有限制/偏移可能解决方案的Firebase查询

Ios 具有限制/偏移可能解决方案的Firebase查询,ios,firebase,Ios,Firebase,有没有一种方法可以使用limit和offset从firebase检索数据?例如,我的firebaseRef中有大约1000个元素,希望开发某种分页。是否有一种方法可以在不加载完整对象列表的情况下执行此操作 目前,我正在使用queryLimitedToLast(limit)来实现这一点,并为下一页增加limit。但是这个方法不允许我获得页面计数 更新: 有一件事我没有提到,但它非常重要。我的数据显示从最后到第一。想象一下,它是一个简单的信使,但带有分页。所以我想展示最后20项,然后在这20项之前展

有没有一种方法可以使用limit和offset从firebase检索数据?例如,我的firebaseRef中有大约1000个元素,希望开发某种分页。是否有一种方法可以在不加载完整对象列表的情况下执行此操作

目前,我正在使用
queryLimitedToLast(limit)
来实现这一点,并为下一页增加
limit
。但是这个方法不允许我获得页面计数

更新:

有一件事我没有提到,但它非常重要。我的数据显示从最后到第一。想象一下,它是一个简单的信使,但带有分页。所以我想展示最后20项,然后在这20项之前展示20项,以此类推


谢谢。

是的,通过一长串子节点分页是绝对可能的。诀窍是记住当前页面上最后一项的键(或优先级或任何排序值),然后将其传递到下一页的
queryStartingAt…

加藤在他的博客文章中写了一个很好的例子:

本例使用的是JavaScript SDK,但iOS SDK中也提供了相关方法


请注意,由于我们从上一页的最后一项开始,此代码段检索了一个额外的项(
LIMIT+1
)。

我回答了您关于逐步浏览以下页面的问题。Firebase没有内置的子级数计数器。如果您需要它,您可以自己实现它。看这个问题:谢谢你的解决方案。我已经更新了我的问题。忘了提到一件非常重要的事情:)有没有实现它的想法?从后面开始,您可以使用
queryLimitedToLast和
queryindingat`。如果您正在使用这些,但它没有达到您期望的效果,那么您必须在您的问题中添加问题的最小复制。不要描述你的代码,展示它。
// fetch page 2 of widgets
new Firebase("https://examples-sql-queries.firebaseio.com/widget")
   .startAt(null, lastWidgetOnPrevPage)
   .limitToFirst(LIMIT+1) // add one to limit to account for lastWidgetOnPrevPage
   .once('value', function(snap) {
      var vals = snap.val()||{};
      delete vals[lastWidgetOnPrevPage]; // delete the extraneous record
      console.log('widgets on this page', vals);
   });