У меня динамически сгенерированный запрос Firestore, например:
let db = firebase.firestore().collection('vehData')
if (this.filters.model.selected) {
db = db.where('Model', '==', this.filters.model.selected)
}
if (this.filters.condition.selected) {
db = db.where('TitleStatus', '==', this.filters.condition.selected)
}
if (this.filters.year.selected) {
db = db.where('Year', '==', this.filters.year.selected)
}
if (this.filters.autopilot.selected) {
db = db.where('Autopilot', '==', this.filters.autopilot.selected)
}
if (this.filters.battery.selected) {
db = db.where('Battery', '==', this.filters.battery.selected)
}
if (this.filters.sortBy.selected) {
db = db.orderBy(this.filters.sortBy.selected, this.filters.sortBy.ascOrDesc)
}
db.limit(200).get().then((querySnapshot) => { ... })
this.filters
- это просто модель данных для группы выбранных входов.
Однако проблема в том, чтоFirebase настаивает на том, что у меня есть составная установка индекса для каждого варианта вышеупомянутого запроса, например: Model ASC TitleStatus ASC
ИЛИ Model ASC TitleStatus ASC Year ASC
ИЛИ Model ASC TitleStatus ASC Year ASC Autopilot ASC
Создание индекса для каждого сценария / возможной комбинации фильтров не будеточевидно, у кого-нибудь есть советы, как мне обойти это ограничение?