繁体   English   中英

如何在不导入 firebase-admin 的情况下从客户端在 Firestore 中存储日期?

[英]How to store date in Firestore from client side without importing firebase-admin?

我想在客户端使用类似serverTimestamp方法,但要做到这一点,我需要包含 firebase-admin 包,这会增加客户端包的大小。

import * as firebaseAdmin from "firebase-admin";
if (!firebaseAdmin.apps.length) {
  firebaseAdmin.initializeApp();
}

const firebaseTimestamp = firebaseAdmin.firestore.FieldValue.serverTimestamp();

const initDate = firebaseAdmin.firestore.Timestamp.fromDate(
    new Date(Date.UTC(0, 0, 0, 0, 0, 0))
  );

是否有任何轻量级解决方案可以从客户端访问 firebase 时间戳方法?

我不确定我是否可以放弃servertimestamp并使用new Date()因为它与当前时区有关。 我想在 Firestore 中存储时间(从客户端),这与任何时区无关,以后我应该能够根据该 Date 参数查询 Firestore。

参考: https : //firebase.google.com/docs/reference/node/firebase.firestore.Timestamp

不得在客户端导入 Firebase Admin SDK。 它需要服务帐户才能运行并具有管理员权限,即不遵守任何安全规则并且可以完全访问您的 Firebase 项目。

您也可以使用客户端 SDK 添加时间戳:

firebase.firestore.FieldValue.serverTimestamp()

您可以在文档中阅读有关此内容的更多信息

或者,您可以使用UNIX 时间戳,而不会遇到时区问题。

它是自 Unix 纪元以来经过的秒数,减去闰秒; Unix 纪元是 1970 年 1 月 1 日 00:00:00 UTC;

const timestamp = Date.now()

然后就可以使用 JS Date对象将其格式化为任何格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM