如何使用 firebase-admin 将日期保存为 firestore 中的时间戳?
2019-07-24
4116
尝试将 javascript 日期转换为 firestore 时间戳时抛出错误
TypeError: Cannot read property 'Timestamp' of undefined
我尝试了两种方法:
- 使用 firebase-admin
const admin = require('firebase-admin');
const db = admin.firestore();
const timestamp = db.Timestamp.fromDate(new Date(date));
- 使用 firebase.firestore:
const firebase = require('firebase');
const timestamp = firebase.firestore.Timestamp.fromDate(new Date(date));
date 在 new Date 中用作参数,格式如下:“2017-01-29”。
预期结果 :firestore 时间戳。
实际结果 :TypeError:无法读取未定义的属性“Timestamp”
注意 :db 和 firebase 都为空或未定义。
是否有从 javascript 日期对象创建 firestore 时间戳的明确方法?
3个回答
您的第二个示例根本没有使用 Firebase Admin SDK - 那是 Firebase Web 客户端 SDK。
如果您使用的是 v11 之前的 Admin SDK:
const admin = require('firebase-admin');
const timestamp = admin.firestore.Timestamp.fromDate(...)
或 v11:
const { Timestamp } = require('firebase-admin/firestore')
const timestamp = Timestamp.fromDate(...)
Doug Stevenson
2019-07-24
接受的答案在最新版本的 firebase-admin (v11) 中不起作用。admin.firestore.Timestamp 未定义。以下是我在新版本中让它正常工作的方法:
const { Timestamp } = require('firebase-admin/firestore')
const timestamp = Timestamp.fromDate(new Date(...))
Pete Shilling
2022-07-21
导入
import * as firebase from 'firebase/app';
并使用
created_at = firebase.firestore.FieldValue.serverTimestamp();
ztvmark
2019-10-23