Arj*_*ong 9 javascript timestamp date firebase google-cloud-firestore
我目前正在使用Math.floor(Date.now() / 1000)正确的时间戳格式,以将其添加到Firebase中的文档中,但是,时间戳是作为数字而不是作为时间戳插入的。
我想按如下所示插入它(作为时间戳,而不是数字)。
这可能吗?
Sea*_*ayn 25
您可以简单地使用以下行:
var myFirebaseFirestoreTimestampFromDate = firebase.firestore.Timestamp.fromDate(new Date());
Run Code Online (Sandbox Code Playgroud)
.fromDate是一个静态方法从静态时间戳类从火力地堡。
Bre*_*ett 13
这有点旧,但只需弄清楚如何在 Svelte 项目中执行此操作即可。我认为这也适用于 React 项目(抱歉对 Vue 不太了解)。更重要的是我使用的是Web 版本 9。
import { Timestamp } from "@firebase/firestore";
let noteDate = Timestamp.fromDate(new Date());
Run Code Online (Sandbox Code Playgroud)
只是为了上下文...我将这个新的注释对象添加到 UI 中。当它只是一个 javascript 日期时,它可以在 firebase 中正常工作,但我无法在没有看到 UI 错误的情况下调用所需的 .toDate() 。
<TimeAgo date={note.NoteDate.toDate()} />
Run Code Online (Sandbox Code Playgroud)
因此,将其设为 firebase.Timestamp 是我在对 javascript 日期对象调用 .toDate 时避免 UI 错误的方法。
Has*_*oon 10
我通过使用解决了它:
const created = firebase.firestore.Timestamp.fromDate(new Date()).toDate();
Run Code Online (Sandbox Code Playgroud)
您必须firebase from 'firebase/app'在代码中显式导入。
import * as firebase from 'firebase/app'
Run Code Online (Sandbox Code Playgroud)
在实际保存到 firestore 之前,请确保您的created常量或任何常量的类型都是正确的。Date
小智 5
正如我所看到的,您正在添加日期,您最好使用服务器时间戳并使用以下安全规则来强制执行它。
安全规则
allow create: if request.resource.data.date_added == request.time &&
// other rules for the message body
Run Code Online (Sandbox Code Playgroud)
客户端JS代码
const message = {
date_added: firebase.firestore.FieldValue.serverTimestamp();
}
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用TimestampFirebase提供的类
const {Timestamp} = require("firebase/firestore");
Run Code Online (Sandbox Code Playgroud)
然后
Timestamp.fromDate(new Date())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10936 次 |
| 最近记录: |