diff --git a/changelog.txt b/changelog.txt index e69de29b..ba96189c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -0,0 +1 @@ +fixed - Firestore Indexes deploy no longer crashes on an empty spec. \ No newline at end of file diff --git a/src/firestore/indexes.ts b/src/firestore/indexes.ts index b9714f9a..97240136 100644 --- a/src/firestore/indexes.ts +++ b/src/firestore/indexes.ts @@ -453,8 +453,8 @@ export class FirestoreIndexes { fieldOverrides: spec.fieldOverrides || [], }; - if (!spec.indexes) { - return; + if (!(spec.indexes && spec.indexes.length > 0)) { + return result; } // Try to detect use of the old API, warn the users. diff --git a/src/test/firestore/indexes.spec.ts b/src/test/firestore/indexes.spec.ts index a9df9783..0c32d538 100644 --- a/src/test/firestore/indexes.spec.ts +++ b/src/test/firestore/indexes.spec.ts @@ -40,6 +40,14 @@ describe("IndexValidation", () => { expect(upgraded).to.eql(VALID_SPEC); }); + it("should accept an empty spec", () => { + const empty = { + indexes: [], + }; + + idx.validateSpec(idx.upgradeOldSpec(empty)); + }); + it("should accept a valid v1beta1 index spec after upgrade", () => { idx.validateSpec( idx.upgradeOldSpec({