如何在不导入firebase管理员的情况下从客户端将日期存储在firestore中?

ubby3x7f  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(384)

我想用像这样的东西 serverTimestamp 方法,但要做到这一点,我需要包括firebase管理包,这将增加客户端包的大小。

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时间戳方法的轻量级解决方案?
我不确定我是否能放弃 servertimestampnew Date() 因为它与当前时区有关。我想将时间存储在firestore中(从客户端),它与任何时区都不相关,我应该能够在以后根据该日期参数查询firestore。
裁判:https://firebase.google.com/docs/reference/node/firebase.firestore.timestamp

wnvonmuf

wnvonmuf1#

您不能在客户端导入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对象以任何格式对其进行格式化。

相关问题