Firebase Firestore возвращает временную метку как пустой объект

#firebase #vuejs2 #google-cloud-firestore

# #firebase #vuejs2 #google-облако-firestore

Вопрос:

 firebase.firestore().collection('items')
 

Возвращает все строки, как и ожидалось, но созданная временная метка возвращается как пустой объект {}

 {"created_at":{},"name":"item one","description":"item one desc"}
 

Как я могу заставить его предоставить фактическую временную метку, которая отображается в БД в консоли firebase?

Как это отображается в консоли firebase

Результат, возвращенный из вышеупомянутой коллекции, сохраняется как items и отображается в таблице в vue js.

Ответ №1:

Временная метка Firebase Firestore — это объект, если вы хотите его отобразить, вы должны преобразовать его в объект даты js. Вы можете прочитать больше здесь, в разделе общедоступных конструкторов.

Пример js:

 firebase
    .firestore()
    .collection('items')
    .get()
    .then((querySnapshot) => {
      const data = [];
      querySnapshot.forEach((item) => {
        const { created_at, ...rest } = item.data();

        data.push({
          created_at: new Date(created_at.seconds * 1000), // or you can use moment - moment.unix(created_at.seconds)
          ...rest,
        });
      });

      console.log(data); // [{"created_at": "2019-04-10T15:25:04.000Z", "name": "item one", "description": "item one desc"}]
    });
 

Комментарии:

1. Спасибо! Это именно то, что я искал.