管理 Cloud Firestore 中的索引

为保证查询性能,Cloud Firestore 要求每个查询都要有索引。它会自动为您创建最基本的查询所需的索引。在您使用和测试应用的过程中,Cloud Firestore 会生成错误消息,帮助您创建您的应用所需的额外索引。本页面介绍了如何管理单字段索引和复合索引。

通过错误消息创建缺少的索引

如果您尝试使用未映射到现有索引的范围子句进行复合查询,则会收到错误。错误消息中包含一个直接链接,用于在 Firebase 控制台中创建缺少的索引。

通过生成的链接转到 Firebase 控制台,查看自动填充的信息,然后点击创建

使用 Firebase 控制台

要在 Firebase 控制台中手动创建新的索引,请执行以下操作:

Firebase 控制台中的 Firestore 索引编制界面的图片

  1. 转到 Firebase 控制台数据库部分。
  2. 转到索引标签,然后点击添加索引
  3. 输入集合名称,并设置索引排序时将依据的字段。
  4. 点击创建

索引可能需要几分钟才能构建完毕,具体取决于查询的大小。创建索引后,您可以在“复合索引”部分中查看这些索引及其状态。如果它们仍在构建中,则 Firebase 控制台会包括一个表示正在构建的状态栏。

移除索引

要删除索引,请执行以下操作:

  1. 转到 Firebase 控制台数据库部分。
  2. 点击索引标签。
  3. 将鼠标悬停在要删除的索引上,然后从上下文菜单中选择删除
  4. 通过点击提醒中的删除,确认您要删除该索引。

使用 Firebase CLI

您还可以使用 Firebase CLI 来部署索引。要开始使用,请在您的项目目录中运行 firebase init firestore。在设置过程中,Firebase CLI 会以正确的格式生成一个包含默认索引的 JSON 文件。编辑该文件以添加更多索引,并使用 firebase deploy 命令部署该文件。如果您只想部署索引,可以添加 --only firestore:indexes 标志。如果您使用 Firebase 控制台对索引进行了修改,请务必同时更新本地索引文件。

索引构建时间

索引创建需要几分钟时间,具体取决于需要更新的数据量。与编入索引的字段匹配的文档越多,创建时间越长。此外,每个唯一的集合 ID 只能同时参与一个索引构建操作。以同个集合 ID 为基础的多个索引构建操作将按顺序完成。

索引构建错误

在管理复合索引和单字段索引豁免时,您可能会遇到索引构建错误。如果 Cloud Firestore 为之编制索引的数据出现问题,索引操作可能会失败。通常这表示您达到了索引限制。例如,操作可能已达到每个文档的索引条目数量上限。

如果索引创建失败,您会在控制台中看到错误消息。确认您没有达到任何索引限制后,请重新尝试您的索引操作。

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面