Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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复合查询分页_Javascript_Reactjs_Firebase_Google Cloud Firestore_Pagination - Fatal编程技术网

Javascript Firestore复合查询分页

Javascript Firestore复合查询分页,javascript,reactjs,firebase,google-cloud-firestore,pagination,Javascript,Reactjs,Firebase,Google Cloud Firestore,Pagination,我正在尝试对复合索引查询进行分页 let size = data.length let lastElement = data[size-1].commentCount db.collection('user-content').orderBy('commentCount','desc').orderBy('likes', 'desc').startAfter(lastElement).limit(10).get() 但是我现在收到了这个错误信息 [未处理的承诺拒绝:FirebaseError

我正在尝试对复合索引查询进行分页

let size = data.length
let lastElement = data[size-1].commentCount

db.collection('user-content').orderBy('commentCount','desc').orderBy('likes', 'desc').startAfter(lastElement).limit(10).get()
但是我现在收到了这个错误信息

[未处理的承诺拒绝:FirebaseError:函数查询。使用无效数据调用startAfter()。不支持的字段值:未定义]

我认为这与startAfter(lastElement)有关

我打开了复合索引,并且在第一次加载时获取数据(没有startAfter)

有人知道如何使用复合查询分页吗


我正在使用Expo SDK41,管理工作流。

是的,您在
lastElement
中纠正了问题,它似乎
未定义。您可以通过添加一些
console.log
来检查它。更好的做法是查看可复制的代码示例,但一般的解决方法应如下所示:

let size=data.length
让lastElement=data[size-1]。commentCount | | 0//添加一个回退值
db.collection('user-content').orderBy('commentCount','desc').orderBy('likes','desc').startAfter(lastElement).limit(10).get()

您似乎在为
.startAfter(lastElement)
使用一个数字-(
让lastElement=data[size-1].commentCount
)-有点难看,因为您没有告诉我们在哪里定义了
数据,但名称
commentCount
确实暗示了这一点

.startAfter()
不需要数字;不存在它可以使用的索引或计数
.startAfter()
需要一个文档快照-


…应该来自具有完全相同路径和
.where()
子句(即相同查询)的查询。可以将其视为“在我上次查询的文档/快照之后启动”。

您可以将分配给
数据的代码包含在内吗?