【问题标题】:Document's IDs and order by in a query throws an error (Firestore)查询中的文档 ID 和排序依据引发错误 (Firestore)
【发布时间】:2020-10-26 04:58:01
【问题描述】:

当我试图从 Firestore 中获取某些文档时,

我收到了错误:

不等式过滤器属性和第一排序顺序必须相同:__name__ 和字段

在使用此查询索引我的 Firestore 数据库时:

db.collection("collection").whereField(.documentID(), in: array).order(by: "field")

此查询在没有 order by(即 int 排序)的情况下可以正常工作。

问题似乎是在查询中使用文档 ID 和 order by 语句会引发错误。

这个问题有什么变通方法或解决方案吗?

谢谢!

【问题讨论】:

  • 请记住,如果查询指定属性的不等式过滤器和其他属性的排序顺序,则不等式过滤器中使用的属性必须在其他属性之前排序。

标签: ios database firebase google-cloud-firestore


【解决方案1】:

Firestore 无法执行此查询,因为“in”过滤器使用的文档 ID(内部称为“__name__”)与您的排序顺序不同。

最简单的解决方法是简单地对应用代码中的文档进行排序。由于“in”查询最多只能返回 10 个文档,因此这在现代硬件上应该不会造成任何实际问题。

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 2020-01-14
    • 2018-07-06
    • 1970-01-01
    • 2020-08-10
    • 2021-10-22
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多