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

cvxl0en2  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(129)

我希望跳过前N个值来实现分页。例如,第1页返回1 - 10的结果,如果我将偏移量设置为10,那么前10个结果将被跳过,我在第2页得到11 - 20。
"我在努力做什么"
1.设置偏移,以便跳过前N个值。
1.使用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查询中的分页,请给我同样的建议。

zujrkrfu

zujrkrfu1#

如果查看StructuredQuery的JSON表示格式,您会发现offset需要成为StructuredQuery对象的一个元素。
因此,您需要传递以下有效负载:

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

相关问题