Firestore: сортировка по Firestore Timestamp вызывает UnhandledPromiseRejectionWarning - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь получить документы из моего Firestore и отсортировать их по метке времени.Временная метка на самом деле находится в «пожарном формате» (см. Ниже)

My date format

Код

Я пытался использовать этот код

const querySnapshot = await db
    .collection("placeVisits")
    .where("placeId", "==", req.params.placeId)
    .orderBy("time", "desc")
    .get();

но выдает error: (node:8356) UnhandledPromiseRejectionWarning: Error: 9 FAILED_PRECONDITION: The query requires an index. You can create it here: https://console.firebase.google.com/...

Тем не менее, это работает нормально (но, конечно, не сортируется)

const querySnapshot = await db
    .collection("placeVisits")
    .where("placeId", "==", req.params.placeId)
    .get();

Понятия не имею, как это исправитьэто или почему это происходит.Это потому, что моментальные снимки Firestore не сортируются или что-то в этом роде?

1 Ответ

1 голос
/ 02 мая 2019

Запрос на .where("placeId", "==", req.params.placeId).orderBy("time", "desc") требует составного индекса, который не создается Firestore автоматически.

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

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