Как заказать firebase запрос по логическому - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть логическое поле в моих документах пожарного магазина.Я хочу заказать коллекцию по логическим.Документ с answer логическим значением true должен отображаться до документов с answer логическим значением false.

   const item: AngularFirestoreCollection<any> =
       this.afs.collection(`items`,
          (ref) => ref.where('questionId', '==', questionId)
                      .orderBy('updatedAt', 'desc')
                      .orderBy('answer'));
   return item.valueChanges();

элементы в хранилище находятся в следующем порядке

items = {[
 {
id: 1,
questionId: x1,
answer: false,
updatedAt: 848939
},
{
id: 2,
questionId: x2,
answer: false,
updatedAt: 848936
},
{
id: 3,
questionId: x3,
answer: true,
updatedAt: 848938
}
]}

Когда запрос выполнен,Я хочу, чтобы элемент номер три был с индексом 0 ... первый элемент в результатах.Теперь я получаю только заказы. Обновлен.

Приведенный выше запрос не дает требуемый результат.Как мне выполнить такой запрос?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Как указано в документации по типам данных :

Тип данных: логическое значение

Порядок сортировки: false

Если вы хотите, чтобы документы с true были на первом месте, вам придется отсортировать их в порядке убывания:

 .orderBy('answer', 'desc'));
0 голосов
/ 20 сентября 2019

Изменить направление сортировки для поля ответа:

orderBy('answer', 'desc')
...