Javascript 使用firestore游标使用时间戳分页

Javascript 使用firestore游标使用时间戳分页,javascript,node.js,firebase,google-cloud-firestore,Javascript,Node.js,Firebase,Google Cloud Firestore,我尝试使用游标进行时间戳分页,但每次调用数据库时都返回相同的数据 这样我就可以把它放在firestore里了 const xDate = admin.firestore.Timestamp.now(); 要使用光标,我按如下操作 let consulta = db.collection('facebook_spa'); consulta = consulta.select('xId'); consulta = consulta.where('xEstat

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

这样我就可以把它放在firestore里了

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“timestamp”一起保存,xId是单个字段。换言之,将所有最新数据显示为最新数据,并进行分页

这两种方法都不允许正确进行分页


谢谢你的帮助

我也有同样的问题。需要首先将
xDate
字段转换为时间戳对象

因此,请使用类似这样的方法:

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));

这应该可以解决问题。

我也有同样的问题。需要首先将
xDate
字段转换为时间戳对象

因此,请使用类似这样的方法:

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));

这应该可以解决问题。

您希望查询生成哪些数据?请编辑问题以显示您正在使用的实际数据。@DougStevenson Hi。我想按日期降序显示数据的Id,但要使用游标分页,可以使用xDate或xId字段,也可以同时使用xDate和xId字段。xDate与firestore“timestamp”一起保存,xId是单个字段。换言之,将所有最新数据显示为最新数据,并进行分页。关于您希望查询生成的数据是什么?请编辑问题以显示您正在使用的实际数据。@DougStevenson Hi。我想按日期降序显示数据的Id,但要使用游标分页,可以使用xDate或xId字段,也可以同时使用xDate和xId字段。xDate与firestore“timestamp”一起保存,xId是单个字段。换言之,将所有最新数据显示为最新数据,并进行分页。Aspects
xDate
已经是声明中的时间戳:
const xDate=admin.firestore.Timestamp.now()
。返回时间戳。非常感谢。这对我帮助很大。Aspects
xDate
已经是声明中的时间戳:
const xDate=admin.firestore.Timestamp.now()
。返回时间戳。非常感谢。这对我帮助很大。当做