[英]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.