-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
[REQUIRED] Environment info
firebase-tools: 13.6.0
Platform: macOS
[REQUIRED] Test case
Given 2 composite indexes, created via the FAILED_PRECONDITION
provided link

[REQUIRED] Steps to reproduce
Run the firebase firestore:indexes
CLI command to output the indexes. As you will see, the indexes are duplicated, because the __name__
is stripped off https://github.com/firebase/firebase-tools/blob/master/src/firestore/api.ts#L187
{
"collectionGroup": "random-collection",
"queryScope": "COLLECTION_GROUP",
"fields": [
{
"fieldPath": "a",
"order": "ASCENDING"
},
{
"fieldPath": "b",
"order": "DESCENDING"
}
]
},
{
"collectionGroup": "random-collection",
"queryScope": "COLLECTION_GROUP",
"fields": [
{
"fieldPath": "a",
"order": "ASCENDING"
},
{
"fieldPath": "b",
"order": "DESCENDING"
}
]
},
[REQUIRED] Expected behavior
The __name__
to also be included, as that is the difference between both
[REQUIRED] Actual behavior
The current duplication is a problem because when you take the index file from the sandbox env and deploy it to production, you think all the indexes are created, but in fact only one of the 2 is. And thus you reach a FAILED_PRECONDITION
on production
While this example is exaggerated in the sense that probably you would not have 2 indexes like this, the bigger issue is if you have an index with a __name__
order that is not exactly as the default sort order, then it's not properly generated when moving from sandbox to production