Pu sh данные в массиве, но после преобразования метки времени в дату - PullRequest
0 голосов
/ 30 марта 2020

Извлечение данных из Firestore и помещение их в массив. Это работает нормально, но в этом процессе я меняю формат метки времени, и я хочу, чтобы в моем массиве было значение timestamp, а не исходное. Как заменить это значение на оригинальное и pu sh?

Мой код пока:

home.ts

firebase.firestore().collection("dailyreport").where("timestamp", ">=", start)
    .onSnapshot(querySnapshot => {
        var cities = [];
        querySnapshot.forEach( doc=> {

  const timeinmillsecs = doc.data().timestamp.seconds * 1000; 
  let a1 = new Date(timeinmillsecs); 
  let show_year_month_date =  a1.getFullYear()+'/'+(a1.getMonth()+1) +'/'+a1.getDate(); // 3.convert to imple date

  console.log(show_year_month_date); // ***NEED THIS VALUE IN dailyreports ARRAY 

         this.dailyreports.push(doc.data());
         console.log("Timestamp greather than 29march -- ", (doc.data()));
        });
    });

Скриншот console.log(doc.data())

enter image description here

Редактировать 1

Перед нажатием я присвоил значение следующим образом -

doc.data().timestamp = show_year_month_date;
this.dailyreports.push(doc.data());

Но это также не работает.

Редактировать 2

Снимок экрана dailyreports и doc:

enter image description here

1 Ответ

1 голос
/ 30 марта 2020

Вместо того, чтобы пытаться обновить doc.data(), скопируйте значение в новую переменную, скажем data. Обновите метку времени в data, а затем данные pu sh до this.dailyreports. А затем консольный журнал data, чтобы увидеть объект с обновленной отметкой времени, который был переведен в this.dailyreports.

firebase.firestore().collection("dailyreport").where("timestamp", ">=", start)
  .onSnapshot(querySnapshot => {
    var cities = [];
    querySnapshot.forEach(doc => {
      const data = doc.data();

      const timeinmillsecs = data.timestamp.seconds * 1000;
      let a1 = new Date(timeinmillsecs);
      let show_year_month_date = a1.getFullYear() + '/' + (a1.getMonth() + 1) + '/' + a1.getDate(); // 3.convert to imple date

      data.timestamp = show_year_month_date;
      console.log(show_year_month_date); // ***NEED THIS VALUE IN dailyreports ARRAY 
      


      this.dailyreports.push(data);
      console.log("Timestamp greather than 29march -- ", data);
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...