Firestore分页:如何使用Rest Api为startAt设置游标



我使用firebase firestore使用Rest API来获取仅限5个文档的数据,由一个名为LikesCount的字段订购。当我想获取接下来的5个文档时,我必须使用startAt并传递前5个文档中最后一个文档的LikesCount值。但是通过这种方式,当有另一个具有相同LikesCount值的文档时,它会获取错误的数据,所以我尝试并搜索了很多关于如何传递最后一个文档id以及LikesCount值的信息,但所有这些都不起作用。此外,我使用Web SDK测试了分页,并且工作正常,因为您可以轻松地传递文档快照,但是文档快照对象包括什么?这样我们就可以理解Cursor的结构,并将其应用于REST API。

我试图使用这个方法来传递文档ID作为referenceValue

{
"structuredQuery": {
"from": [{
"collectionId": "Users"
}],
"where": {
"compositeFilter": {
"op": "AND",
"filters": []
}
},
"orderBy": [{
"field": {
"fieldPath": "LikesCount"
},
"direction": "DESCENDING"
}],
"startAt":
{ "values": [
{
"integerValue": "6"
},
{
"referenceValue": "projects/myprojectid/databases/(default)/documents/Posts/xEvmJ1LLHwTKVREQfXtX"
}
],
"before": false
},
"limit":5
}
}

但是会出现错误:游标有太多的值

也,我试图只传递referenceValue,它仍然没有返回正确的5个文档。提前感谢:)

您的orderBy()有1个字段(LikesCount),但您的startAt()有2个字段。我怀疑这就是错误消息的原因?

传递integerValue将不起作用。如果有13个值为6的结果,那么每次进行上述调用时,您将获得相同的前5个结果。

当你说:

我只尝试通过referenceValue,但仍然没有得到正确的5个文件

你在拿什么文件?你希望拿到什么文件?

相关内容

  • 没有找到相关文章

最新更新