如何将 Firestore 时间戳转换为 Date() - Firestore V9

tim*_*der 2 javascript timestamp firebase google-cloud-firestore

在更新到 V9 之前,我使用这个:

let data = doc.data();

for (let field in data) {
    let value = data[field];

    // If value is an instance of Timestamp, convert it to javascript Date()
    if (value instanceof firebase.firestore.Timestamp) {
        data[field] = value.toDate();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是现在,更新到 V9 后,我遇到了 2 个问题,并且文档中没有提到 JavaScript SDK 的 Timestamp:

  1. firebase.firestore.Timestamp不再可用于检查字段是否为时间戳对象。
  2. 所有字段都不再具有“toDate()”函数。

所以我的问题是,对于 javascript V9 SDK:

  1. 如何检查字段是否是 Timestamp 的实例?
  2. 如何将 Timestamp 实例转换为 Date() 对象?

Dha*_*raj 6

如何检查字段是否是 Timestamp 的实例?

您可以Timestamp从 Firestore 包导入类。

如何将 Timestamp 实例转换为 Date() 对象?

此方法存在于 Timestamp 对象上。

import { Timestamp } from "firebase/firestore"

const timeObj = new Timestamp();

console.log(timeObj instanceof Timestamp)
console.log(timeObj.toDate());
Run Code Online (Sandbox Code Playgroud)