繁体   English   中英

使用时间戳使用 Firestore 游标进行分页

[英]Pagination with firestore cursor using timestamp

我正在尝试使用游标进行时间戳分页,但它在每次调用数据库时返回相同的数据。

这样我把它放在火炉里

const xDate = admin.firestore.Timestamp.now();

要使用光标,我按如下方式执行

let consulta = db.collection('facebook_spa');
          consulta = consulta.select('xId');
          consulta = consulta.where('xEstate', '==', true);
          consulta= consulta.orderBy('xDate', 'desc');
          consulta= consulta.startAfter(xDate);

console.log() 中,它向我显示时间戳采用以下形式

{                                                                                                                                                                   10:59:40
  _seconds: 1600439396,
  _nanoseconds: 705000000
}

试试这个方法。 这里我想按日期分页,因为我试过按id来做,但是需要按日期分组

let consulta = db.collection('facebook_spa');
              consulta = consulta.select('xId');
              consulta = consulta.where('xEstate', '==', true);
              consulta= consulta.orderBy('xDate', 'desc');
              consulta= consulta.orderBy('xId', 'desc');
              consulta= consulta.startAfter('', xId);

我想按日期按降序显示数据的 Id,但使用游标分页,使用 xDate 或 xId 字段或两者(xDate 和 xId)。 xDate 与 firestore“时间戳”一起保存,xId 是单个字段。 换句话说,将所有最新的数据显示到最近的数据并带有分页。

两种方式都不允许正确完成分页

我会感谢你的帮助

我也有同样的问题。 xDate字段需要先转换为 Timestamp 对象。

所以使用这样的东西:

let consulta = db.collection('facebook_spa');
          consulta = consulta.select('xId');
          consulta = consulta.where('xEstate', '==', true);
          consulta= consulta.orderBy('xDate', 'desc');
          consulta= consulta.startAfter(new admin.firestore.Timestamp(xDate._seconds,xDate._nanoseconds));

这应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM