如何将文档引用用于Firestore API的[runQuery.startAt]?



使用Firestore REST API排序和筛选结果时,无法为startAt值使用游标/引用值。我觉得这可能是可能的,在Firestore的基于光标的分页示例中可以看到这一点,他们的SDK中详细介绍了这一点:https://firebase.google.com/docs/firestore/query-data/query-cursors

我有一个对文档中的整数字段使用orderBy的查询。我可以成功地从这个查询的特定整数值开始,如下所示:

"structuredQuery": {
"from": [
{
"collectionId": "objects"
}
],
"orderBy": [
{
"field": {
"fieldPath": "counter"
},
"direction": "DESCENDING"
}
],
"startAt": {
"values": [
{
"integerValue": 15
}
]
}
}

我希望从光标分页中受益,但不幸的是,如果我将startAt值更改为referenceValue,即使查询成功执行,查询结果也不会反映这一点。

"startAt": {
"values": [
{
"referenceValue": "projects/.../databases/(default)/documents/objects/OjvmBvvQ9TkyyQiJ4ExJ"
}
]
}

我是否遗漏了与SDK示例不同的工作方式?

请注意,它不是文档引用,而是可以用作查询光标的文档快照。快照包括startAt所需的字段值。SDK获取文档快照,提取字段值,并将这些值传递给startAt

您可以在createCursorextractFieldValues中看到Node.js客户端库正在执行此操作。

最新更新