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()
子句(即相同查询)的查询。可以将其视为“在我上次查询的文档/快照之后启动”。您可以将分配给数据的代码包含在内吗?