firestore支持跳过功能吗?

时间:2018-05-14 12:51:24

标签: firebase nosql google-cloud-firestore

  

摘要:我想使用'跳过' MySql和MongoDb中使用的函数。   但是,' startAfter(number)'不跳过。

我正在制作一个公告牌。然后我得到了一个问题。

这是页面跳过的问题。

我使用将页面直接移动给用户的基本方法。

但是,我找不到Mysql或MongoDB过去使用的任何跳过函数。

这是我的代码的一部分。

return db.collection('boards').doc(title).collection('posts')
.orderBy('date').startAfter(2).limit(10).get()

所以我想跳过按日期排序的数据中的两个数据。

但是,任何号码都可以在' startAfter'将从第一个数据中获取。

当然,我在官方文档中检查了以下代码。

return first.get().then(function (documentSnapshots) {
  // Get the last visible document
  var lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1];
  console.log("last", lastVisible);

  // Construct a new query starting at this document,
  // get the next 25 cities.
  var next = db.collection("cities")
          .orderBy("population")
          .startAfter(lastVisible)
          .limit(25);
});

但是,上述方法非常麻烦,因为可以无条件地获得现有数据。

有没有好方法?我在等待回复。

1 个答案:

答案 0 :(得分:3)

客户端SDK

此状态的文档:

  

<强> fieldValuesOrDocumentSnapshot

     

(可重复任何类型或DocumentSnapshot)

     

查询结果应该在之后开始的文档的快照,或者按照查询的顺序依次开始此查询的字段值。

因此,您无法简单地指定要跳过的文档数。您将需要知道第二个文档中的值(ID,字段值等)或获取前两个文档,然后使用第二个文档的快照来生成查询。

Admin SDK

使用Admin SDK,有offset方法,可以让您实现所需的目标。