Firestore сортировка по значению

# #javascript #firebase #google-cloud-firestore

Вопрос:

Я пытаюсь создать фильтр для своего приложения, он будет фильтроваться по категории данных, но я также хочу отсортировать их по рейтингу, более высокий рейтинг будет на вершине. Я написал следующий код, но у функции orderby() возникли проблемы.

 const snapshot = await firebase.firestore().collection('Locations').where(  "category", "==", type).orderBy("rating").get();    if (snapshot.empty){  console.log('No matching documents');  return;  }    snapshot.forEach(doc=gt; {  locList.push(doc.data());  })  

и вот мои данные firestore выглядят так данные firestore

Комментарии:

1. Какую реакцию вы получаете?

Ответ №1:

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

.orderBy('rating', 'desc')

Комментарии:

1. я получаю ошибку [Unhandled promise rejection: FirebaseError: The query requires an index. You can create it here:...

2. Вам нужно создать индекс на консоли firebase. Перейдите по ссылке, отображаемой (после…), и вы должны быть хороши.

3. Я создаю индексы вручную, но должны ли эти два данных быть «По возрастанию», «По убыванию» или «Массив»? Также должны ли области запроса быть «Коллекция» или «Группа коллекций»?

4. Идентификатор коллекции : Местоположения . Поля : — категория — Рейтинг по возрастанию — Рейтинг по убыванию. Область запроса : «Коллекция».

5. @AdamNeuwirth Привет, Адам, что, если мне нужно сделать от наименьшего к наибольшему? изменить desc на asce?