集合组查询中 firestore 单个字段索引的 JSON 格式是什么?

Ber*_*gio 2 firebase google-cloud-firestore firebase-cli

我们现在可以从集合组中检索文档,这很棒。为此,我需要通过 Firebase 控制台上的错误消息创建索引。如何将此新索引添加到 firestore.indexes.json 文件?

文档示例:

let museums = db.collectionGroup('landmarks').where('type', '==', 'museum');
museums.get().then(function(querySnapshot) {
  querySnapshot.forEach(function(doc) {
    console.log(doc.id, ' => ', doc.data());
  });
});
Run Code Online (Sandbox Code Playgroud)

Dou*_*son 7

在索引文件的顶层,添加一个名为的新元素fieldOverrides并像这样填充它:

{
  "fieldOverrides": [
    {
      "collectionGroup": "landmarks",
      "fieldPath": "type",
      "indexes": [
        {
          "order": "ASCENDING",
          "queryScope": "COLLECTION"
        },
        {
          "order": "DESCENDING",
          "queryScope": "COLLECTION"
        },
        {
          "arrayConfig": "CONTAINS",
          "queryScope": "COLLECTION"
        },
        {
          "order": "ASCENDING",
          "queryScope": "COLLECTION_GROUP"
        }
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这保留了所有默认的自动索引type的字段landmarksCOLLECTION范围,并允许type还可以在使用COLLECTION_GROUP范围。