-
Notifications
You must be signed in to change notification settings - Fork 1.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