文档的Firestore索引限制

时间:2018-04-27 19:11:45

标签: firebase google-cloud-firestore

根据Firestore documentation关于索引限制:

  

文档的以下最大总和:20,000

     
      
  • 单字段索引条目的数量

  •   
  • 复合索引条目的数量

  •   

我无法理解这意味着什么。是吗:

  • 对于不同的索引,单个文档的索引编号不会超过20,000次。
  • OR,索引的集合不应超过20,000个文档

2 个答案:

答案 0 :(得分:3)

更新:现在每个文档的限制为40,000个索引条目。

此限制会影响您可以为每个文档编制索引的最大字段数。例如,Cloud Firestore会自动为每个字符串字段创建一个升序单字段索引条目和一个降序单字段索引条目。只包含字符串字段且没有复合索引的文档最多可包含20,000个字段。

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

答案 1 :(得分:0)

请注意,firestore还会为数组添加索引,因此如果您使用数组,则此限制会更低。由于firestore创建的两个索引是升序和降序,因此如果您不需要为特定查询使用它们(例如,仅需要降序索引),则可以手动将其删除;如果您不想查询特定字段,则可以将其完全删除(或您不希望Firestore对大型随机数据字段建立索引会对性能造成不利影响。

如果数据量大,建议执行此操作(我是在存储数据的情况下进行此操作的,这是一本书的章节,因此将永远不会在我的应用程序中进行搜索。)

可以通过以下方式删除索引:转到Firebase控制台的Firestore视图,然后依次单击“索引”和“简单索引”,然后单击“添加豁免”按钮。

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

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

不幸的是,无法使用firebase cli工具之类的工具删除索引。

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

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