Запросите базу данных пожарного магазина в поле отметки времени - PullRequest
0 голосов
/ 28 ноября 2018

Я относительно новичок в Firestore (и в программировании), и мне не удалось найти решение моей проблемы в Интернете.

Поиск документов в существующей коллекции.Все документы имеют поле отметки времени.

Когда я пытаюсь выполнить запрос для всех документов ">" или "<", запрос работает нормально.Когда я пытаюсь запросить ">" или "<" 7 дней назад, запрос ничего не возвращает.Я уверен, что я, вероятно, просто пропускаю что-то маленькое.Спасибо за любую помощь! </p>

Эти возвратные документы, как и ожидалось:

var today = new Date();
db.collection("****").where('display', '==', true).where('createdAt', '>', today).get().then(function(querySnapshot) {

и

var today = new Date();
db.collection("****").where('display', '==', true).where('createdAt', '<', today).get().then(function(querySnapshot) {

Они не возвращаютсячто-нибудь:

var today = new Date()-604800000;
db.collection("****").where('display', '==', true).where('createdAt', '>', today).get().then(function(querySnapshot) {

и

var today = new Date();
db.collection("****").where('display', '==', true).where('createdAt', '>', today-604800000).get().then(function(querySnapshot) {

и просто так, черт возьми

var today = new Date()-1;
db.collection("****").where('display', '==', true).where('createdAt', '>', today).get().then(function(querySnapshot) {

Я видел, как другие просили посмотреть, чтополе выглядит как в Firestore, поэтому вот картинка: извините, это ссылка

Пожалуйста, дайте мне знать, если есть что-то еще, что может быть полезно.Спасибо!

РЕДАКТИРОВАТЬ, ЧТОБЫ ПОКАЗАТЬ СЛЕДУЮЩУЮ ПОПЫТКУ:

var config = {****};
firebase.initializeApp(config);

const db = firebase.firestore();
const settings = {/* your settings... */ timestampsInSnapshots: true};
db.settings(settings);

var today = new Date();
var yesterday = date.setDate(today.getDate() - 1);
db.collection("****")
    .where('display', '==', true)
    .where('createdAt', '>', yesterday)
    .get()
    .then(function(querySnapshot) {console.log(createdAt)});

1 Ответ

0 голосов
/ 29 ноября 2018

Хорошо.Так что я получил помощь от очень полезного разработчика Google.

Это сработало.

var beginningDate = Date.now() - 604800000;
var beginningDateObject = new Date(beginningDate);

db.collection("****")
    .where('display', '==', true)
    .where('createdAt', '>', beginningDateObject)
    .get()
    .then(function(querySnapshot) {console.log(/* ... */)});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...