代码之家  ›  专栏  ›  技术社区  ›  Mohammad Shraim

文档的Firestore索引限制

  •  1
  • Mohammad Shraim  · 技术社区  · 7 年前

    根据Firestore documentation 关于索引限制:

    一份文件的最大金额为:20000

    • 单字段索引项的数目

    • 复合索引项的数目

    我不明白那是什么意思。是不是:

    • 对于不同的索引,单个文档的索引不会超过20000次。
    • 或者,要有索引的集合不应超过20000个文档
    2 回复  |  直到 7 年前
        1
  •  4
  •   Juan Lara    6 年前

    使现代化 :现在限制为每个文档40000个索引项。

    此限制会影响每个文档可以索引的最大字段数。例如,云Firestore会自动为每个字符串字段创建升序单字段索引项和降序单字段索引项。只有字符串字段且没有复合索引的文档最多可以有20000个字段。

    我们更新了文件,以澄清: https://firebase.google.com/docs/firestore/query-data/index-overview#index_limitations

        2
  •  1
  •   Philip    6 年前

    请注意,firestore还为数组添加了索引,因此如果您使用的是数组,则此限制会更低。由于firestore创建的两个索引是升序索引和降序索引,因此如果不需要用于特定查询(例如,只需要降序索引),则可以手动删除这些索引;如果不想查询特定字段(或不想让firestore索引大随机数据字段的性能受到影响),则可以完全删除这些索引。

    如果数据很大,建议这样做(我在存储数据时这样做,数据是一本书的章节,因此在我的应用程序中永远不会被搜索)。

    通过转到firebase控制台firestore视图,单击索引,然后单击简单索引,然后单击添加豁免按钮,可以删除索引。

    您可以删除升序、降序或数组索引。

    因此,如果达到20000个限制,可以通过删除所有未使用的索引来延迟达到该限制。

    很遗憾,无法使用诸如firebase cli工具之类的工具来删除索引。

    “正确答案-绿色勾号”下面的链接讨论了索引删除和屏幕截图限制。

    How to delete Single-field indexes that generated automatically by firestore?