【问题标题】:How do cursors work on Firestore's REST API?游标如何在 Firestore 的 REST API 上工作?
【发布时间】:2019-10-29 20:59:08
【问题描述】:

我正在尝试使用 Firestore 的其余 API 构建结构化查询。 有一件事我不太明白。根据文档,我需要为startAt 或endAt 参数提供一个游标(使用时),一个游标由两个道具组成,第一个是Values 的数组。

{
  "values": [
    {
      object(Value)
    }
  ],
  "before": boolean
}

文档:https://firebase.google.com/docs/firestore/reference/rest/v1beta1/StructuredQuery#cursor。

我的问题是,我应该如何使用它? 据我了解,光标代表文档列表(在本例中为查询生成的列表)上的一个位置,但是 values 属性如何发挥作用?

谢谢!

【问题讨论】:

    标签: firebase rest google-cloud-firestore


    【解决方案1】:

    游标代表查询结果中的文档,而不是列表中的位置(因为位置可能在调用之间发生变化)。

    您在 REST API 调用中指定的值是您想要开始的锚文档中的值。您至少需要指定在查询中使用的值,因此如果您按字段index 排序并按字段category 过滤,则需要从锚文档中指定这些字段的值。

    【讨论】:

    • 只是为了验证我的理解是否正确。使用游标时,我需要提供特定文档的属性和值,然后在幕后,将搜索具有这些确切属性和值的文档并将其用作锚点。所以从技术上讲,如果我有多个文档具有完全相同的道具和值,就不能保证锚每次都指向同一个文档?
    • 是的,差不多就是这样。 Firestore 根据您的查询查找索引,然后根据您提供的值查找锚文档,然后从那里开始返回结果。如果文档可以具有相同的值,则您必须包含文档 ID,在这种情况下,该 ID 用作决胜局。这实际上可能总是需要的。我不确定,因为我只使用 SDK 完成了此操作,我在其中传递了一个实际(完整)文档实例,其中包含所有值 和 ID。
    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2017-06-28
    • 2012-05-09
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2014-04-16
    相关资源
    最近更新 更多