Запрос Firestore с отметкой времени - PullRequest
0 голосов
/ 25 марта 2020

Я могу получить данные, используя условие where, если это текстовое поле, но когда я пытаюсь сделать то же самое с полем timestamp и date, вещи не работают.

Вот мой код:

home.ts

firebase.firestore().collection("cities").where("timestamp", ">", "3/24/2020")
    .onSnapshot(function(querySnapshot) {
        var cities = [];
        querySnapshot.forEach(function(doc) {
            cities.push(doc.data().name);
        });
        console.log("Timestamp greather than 3/24/2020 -- ", cities.join(", "));
    });

Все отлично работает с firebase.firestore().collection("cities").where("state", "==", "CA"), но не работает с date.

Снимок экрана хранилища огня:

enter image description here

Примечание: JLD do c должно быть возвращено в консоли, поскольку его значение timestamp больше 3/24/2020

Edit 1

В соответствии с @alex сейчас я делаю так

let start = new Date('2020-03-25'); firebase.firestore().collection("cities").where("timestamp", ">", start)

, но это включает в себя данные 2020-03-25, когда я использую >, почему?

1 Ответ

3 голосов
/ 25 марта 2020

Я пытаюсь сделать то же самое с полем отметки времени и датой, которые не работают.

Это не работает, потому что вы передаете строку .where("timestamp", ">", "3/24/2020") a, которая не правильно, поскольку ваше свойство timestamp в базе данных содержит объект Date, а не a String. Чтобы решить эту проблему, вместо передачи даты в виде строки ("3/24/2020") передайте ее как объект Date, и все будет работать нормально.

let timestamp = new Date('2020-03-25');

А затем используйте:

firebase.firestore().collection("cities").where("timestamp", ">", timestamp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...