Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将Firestore orderBy desc与startAfter游标组合_Javascript_Firebase_Google Cloud Firestore_React Native Firebase - Fatal编程技术网

Javascript 如何将Firestore orderBy desc与startAfter游标组合

Javascript 如何将Firestore orderBy desc与startAfter游标组合,javascript,firebase,google-cloud-firestore,react-native-firebase,Javascript,Firebase,Google Cloud Firestore,React Native Firebase,我试图在firestore中查询一个列表,该列表应按降序日期属性排序,并使用startAfter光标对结果进行分页 正如您在下面的代码片段中所看到的,一旦我将orderBy('date','desc')与startAfter(lastDoc.date)组合起来,这将失败 我想知道我做错了什么。有什么想法吗 //这确实有效 //但它是按升序日期排序的 db.收集(“储罐”) .doc(tankId) .collection(“文档”) .orderBy('日期') .startAfter(最后文

我试图在firestore中查询一个列表,该列表应按降序日期属性排序,并使用startAfter光标对结果进行分页

正如您在下面的代码片段中所看到的,一旦我将orderBy('date','desc')与startAfter(lastDoc.date)组合起来,这将失败

我想知道我做错了什么。有什么想法吗

//这确实有效
//但它是按升序日期排序的
db.收集(“储罐”)
.doc(tankId)
.collection(“文档”)
.orderBy('日期')
.startAfter(最后文件日期)
.限制(页面大小)
.get()
//这甚至可以。。。
//但是没有为分页设置游标(startAfter)
db.收集(“储罐”)
.doc(tankId)
.collection(“文档”)
.orderBy('date','desc')
.限制(页面大小)
.get()
//这就是我需要的
//但它总是返回零结果
db.收集(“储罐”)
.doc(tankId)
.collection(“文档”)
.orderBy('date','desc')
.startAfter(最后文件日期)
.限制(页面大小)

.get()
您需要在
之后将实际文档快照传递到
开始,而不是日期值:

db.collection('tanks')
  .doc(tankId)
  .collection('documentations')
  .orderBy('date', 'desc')
  .startAfter(lastDoc)
  .limit(pageSize)
  .get()

请参阅。

这实际上起作用了,不知道为什么以前没有

const snapshot=lastDoc
? 等待Api.db.collection(“储罐”)
.doc(tankId)
.collection(“文档”)
.orderBy('date','desc')
.startAfter(最后文件日期)
.限制(页面大小)
.get()
:等待Api.db.collection('储罐')
.doc(tankId)
.collection(“文档”)
.orderBy('date','desc')
.限制(页面大小)
.get()
.startAfter(lastDoc)实际上不工作并返回从第一个索引开始的数据,可能是因为lastDoc是snapshot.data()。