В Firebase Firestore я хочу использовать orderBy дважды. Нужно ли создавать индекс для ускорения запроса? - PullRequest
0 голосов
/ 25 апреля 2018

В Firebase Firestore я хочу использовать orderBy дважды. Нужно ли создавать индекс для ускорения запроса?

Например:

Query query = fsDB.collection("users").document(currentUID).collection("received_messages")
.orderBy("messageSeen").orderBy("date");

Нет автоматического сообщения об ошибке, которое появляется, как при использовании диапазонов или «где».

Структура выглядит так:

received_messages

  date:  01/02/99

  messageSeen:  true

  from:  keuajopdf315 

Должен ли я поместить индекс в коллекцию "полученные сообщения" и поля "messageSeen" и "date", чтобы ускорить запрос?

1 Ответ

0 голосов
/ 25 апреля 2018

Когда я пытаюсь выполнить запрос с двумя предложениями orderBy (), я получаю сообщение об ошибке:

Для запроса требуется индекс. Вы можете создать его здесь: ...

После добавления индекса, связанного в сообщении об ошибке, я могу затем получить документы, упорядоченные по состоянию, затем по индексу. Смотрите мой рабочий jsbin здесь: https://jsbin.com/rewujav/edit?js,console

docs.orderBy("state").orderBy("index").get().then(function(snapshot) {
  snapshot.forEach((doc) => {
    console.log(doc.id+": state="+doc.data().state+" index="+doc.data().index);
  })
})
...