小编joe*_*joe的帖子

在 Firestore 中创建分页时间顺序查询

希望这里有一个使用 Firestore 查询的相对简单的问题

我试图从本质上创建一个新闻提要,从最旧的内容中排序最新的内容。这部分很简单,我使用:

var first = db.collection("feeds/0/active").orderBy("timestamp", "desc").limit(3);
Run Code Online (Sandbox Code Playgroud)

它检索新闻提要中的 3 个最新条目。我当时的想法是在下一个查询中,下拉提要中的下 3 个项目。因此,如果我们按年龄分类,就项目的新旧程度而言,集合中的 4、5、6 名。

为此,我获取查询一中的最后一项,并使用该节点的时间戳作为查询 2 中的起始值:

  var first = db.collection("feeds/0/active").orderBy("timestamp", "desc").limit(3);

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


      var next = db.collection("feeds/0/active").orderBy("timestamp", "desc").startAt(lastVisible.data().timestamp).limit(3);
      next.get().then(function(docSn){
        console.log("SECOND QUERY!")
        docSn.forEach(function(doc) {
          console.log(doc.data().message)
        })
      })
Run Code Online (Sandbox Code Playgroud)

此代码的结果返回与第一个查询返回的结果相同,节点 1、2、3 尽管试图告诉第二个查询从节点 3 开始

我也尝试传入一个 javascript 对象:

  var datevalue = Date.parse(lastVisible.data().timestamp)    
  var next = db.collection("feeds/0/active").orderBy("timestamp", "desc").startAt(datevalue).limit(3);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也不起作用。我还尝试传入整个快照项,并收到错误消息“来自 JS 的错误调用:字段大小不同。[[9,38,38,38],[0,0,1,0] 等..”

不知道从哪里开始,因为我已经阅读了文档和任何示例,我可以找到但似乎无法弄清楚。我能想到的实现这一点的唯一另一种方法是使用云函数在创建时为每个节点编号..但这感觉很糟糕

任何帮助将是巨大的!谢谢

javascript firebase google-cloud-firestore

5
推荐指数
1
解决办法
2755
查看次数

Firestore Cloud功能-收集集合中的文档数量

我正在尝试编写一个云函数,以跟踪集合中文档的数量。关于这一点,可能没有很多文档,因为Firestore现在是如此。.所以我试图思考实现此目的的最佳方法。.这是我想出的解决方案。.我不知道如何返回计数

文件1->收集->文件

在文档1中,理想情况下将文档计数存储在集合中,但是我似乎无法弄清楚如何将其关联

firebase google-cloud-firestore

3
推荐指数
1
解决办法
2659
查看次数