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