Firestore 时间戳在控制台中未被识别

问题描述 投票:0回答:2

我有一个脚本,可以将一些数据从 Excel 工作表加载到 Firestore 中。对于加载的每个条目,我想添加两个字段,

dateAdded
dateModified

const service:Service = {
   name: data.PROFISSIONAL,
   description: data.DESCRICAO,
   category: data.CLASSIFICACAO,
   cellphones,
   phones,
   reviews: reviews,
   numReviews: reviews.length,
   excluded: data.EXCLUIDO === 'SIM',
   instagram: data.INSTAGRAM,
   location: data.LOCAL,
   dateAdded: Timestamp.now(),
   dateModified: Timestamp.now(),
   tags: getTags(data.CLASSIFICACAO)
};

我有一个中间步骤,将这些服务的数组保存到 json 对象。然后数据会上传到 firestore:

const jsonToFirestore = async () => {
  console.log(`Uploading table`)

  try {
    console.log('Initializing Firebase');
    initializeApp(serviceAccount);
    console.log('Firebase Initialized');

    await restore('./data/services.json');
    console.log('Upload Success');
  }
  catch (error) {
    console.log(error);
  }
};

当我查看 Firebase 控制台时,日期字段尚未被识别为时间戳。

Firestore console dates not recognized

有什么办法可以让他们被认可吗?例如这样:

Firestore console dates recognized

我感谢提供的任何帮助。

typescript firebase google-cloud-firestore timestamp
2个回答
0
投票

看起来这种格式的

Timestamp
正在按预期工作:

时间戳代表独立于任何时区的时间点或 日历,以秒和秒的分数表示 UTC 纪元时间中的纳秒分辨率。

尝试使用

toDate
方法将
Timestamp
转换为 JavaScript
Date
对象。


0
投票

正如上面用户所说:

const date = new Date(yourTimestampObj.seconds * 1000);

这会将您的时间戳(unix)转换为您可以使用的日期对象

.toDateString()

或其他方法。 顺便说一句,unix 时间戳是自 1970 年发生的 Unix 纪元以来的秒数。

© www.soinside.com 2019 - 2024. All rights reserved.