Управление индексами в Firebase Firestore - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь настроить пользовательский порядок для элементов коллекции String при извлечении из Firebase FireStore.

Я довольно запутался с документацией с настраиваемыми и составными индексами.У меня есть несколько категорий, скажем, Рестораны, Выходы, Магазины, и я просто хочу, чтобы их заказывали одинаково, когда я их получаю.Я хочу получить «Выходы», затем «Рестораны», затем «Магазины».

В админ-панели они не упорядочены должным образом, и я хотел бы изменить их порядок.Код клиента, который выбирает данные, является быстрым кодом.

1 Ответ

2 голосов
/ 19 марта 2019

Firestore автоматически создает однополевые индексы для всех полей в ваших документах ( Подробнее ). Это означает, что простые запросы будут работать прямо из коробки.

Таким образом, такой запрос должен дать вам результат, который вы ищете: любое место, отсортированное по категориям в алфавитном порядке. И это работает, потому что вы запрашиваете только одно поле.

placesCollectionRef.order(by: "category", descending: false)

Но часто вы хотите сопоставить одно поле и отсортировать по другое. И в этом случае вам понадобится составной индекс.

placesCollectionRef
  .whereField("state", isEqualTo: "CA")
  .order(by: "category", descending: false)

Firebase очень помогает определить, когда нам нужен индекс. Если вы выполните тестовый запуск своего приложения, Firebase выдаст ошибку, если был какой-либо запрос, в котором отсутствовал необходимый индекс. Сообщение об ошибке будет содержать URL, который ссылается на консоль проекта Firebase и открывает диалоговое окно для создания индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...