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

ana*_*y_v 5 ios firebase

有没有办法从限制和偏移的firebase检索数据?例如,我的firebaseRef中有大约1000个元素,并希望开发某种分页.有没有办法可以在不加载完整的对象列表的情况下完成.

现在我正在使用queryLimitedToLast(limit)它并limit为每一页增加.但是这种方法不允许我计算页数.

更新:

有一件事我没有提到,但这非常重要.我的数据从最后到第一个显示.想象一下,这是一个简单的信使但是有了分页.所以我想显示最后20个项目,然后是20个之前的20个等等.

谢谢.

Fra*_*len 10

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

Kato在他的博客文章中写了一个很好的例子,说明如何在Firebase中实现常见的SQL查询:

// 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);
   });
Run Code Online (Sandbox Code Playgroud)

此示例使用JavaScript SDK,但iOS SDK中也提供了相关方法.

请注意,此片段会检索一个额外的项目(LIMIT+1),因为我们从上一页的最后一项开始.