在 Firestore REST API 查询中使用偏移量

问题描述 投票:0回答:1

我希望跳过前 N 个值来实现分页。 例如,第1页返回1-10的结果,如果我将偏移量设置为10,那么前10个结果将被跳过,我在第2页中得到11-20。

我想做什么?

  1. 设置偏移量,以便跳过前 N 个值。
  2. 使用 REST API 执行此操作

请求正文:

{
  "structuredQuery": {
    "from": [
      {
        "collectionId": "play",
        "allDescendants": true
      }
    ],
    "where": {
      "fieldFilter": {
        "field": {
          "fieldPath": "tags"
        },
        "op": "array_contains",
        "value": {
          "stringValue": "charlie"
        }
      }
    }
    
}
  "offset":30,
}

我遇到什么错误?

[{
    "error": {
        "code": 400,
        "message": "Invalid JSON payload received. Expected , or } after key:value pair.\n   }\n    }\n    \n}\n  \"offset\":30,\n}\n                    ^",
        "status": "INVALID_ARGUMENT"
    }
}]

PS:如果有更好的方法在 firestore 查询中实现分页,请给我建议。

firebase rest google-cloud-platform google-cloud-firestore
1个回答
1
投票

如果您查看

StructuredQuery
的 JSON 表示格式,您会发现
offset
需要是
StructuredQuery
对象的元素。

所以你需要传递以下payload:

{
  "from": [
    {
      "collectionId": "play",
      "allDescendants": true
    }
  ],
  "where": {
    "fieldFilter": {
      "field": {
        "fieldPath": "tags"
      },
      "op": "array_contains",
      "value": {
        "stringValue": "charlie"
      }
    }
  },
  "offset": 30
}
© www.soinside.com 2019 - 2024. All rights reserved.