У меня есть база данных предметов, и мне нужно найти предметы с совпадающими тегами и выбрать их 10 за раз (или любое другое число).
Я пробовал следующее:
(await admin
.firestore()
.collection('media')
.orderBy('id')
.where('descriptions.tagSet.' + 'Test', '==', true)
.where('descriptions.tagSet.' + 'Test2', '==', true)
.startAt(start)
.limit(10)
.get()).docs;
Сначала я получил сообщение об отсутствии индекса для 'id', поэтому я создал его, используя ссылку, предоставленную Firestore.
Однако следующая ошибка, которую я получил, заключалась в том, что для describ.tagSet.Test нет составного индекса.
К сожалению, теги могут быть любым произвольным количеством вещей, кажется невозможным иметь индексы для каждого возможного тега (если нет быстрого программного способа его создания?).
Я не уверен, как решить эту проблему, похоже, что-то должно быть достаточно простым.