Firebase:创建文档时存储服务器时间戳

ren*_*dom 10 firebase google-cloud-firestore

当我使用这段代码时:

firestore().collection("item").add({...item, created: firebase.database.ServerValue.TIMESTAMP})
Run Code Online (Sandbox Code Playgroud)

它创建条目{".sv" : "timestamp"}< - 实际单词"timestamp"

Ros*_*des 35

看起来您正在Firestore中创建文档,但尝试从实时数据库获取时间戳,这是一个不同的Firebase产品.

您可以通过以下方式使用Firestore的时间戳:firebase.firestore.FieldValue.serverTimestamp()像这样:

firestore().collection("item")
 .add({...item, created: firebase.firestore.FieldValue.serverTimestamp()})
Run Code Online (Sandbox Code Playgroud)

2019年2月更新:原始答案已被弃用.Firestore时间戳的新用途是:

firestore().collection("item")
 .add({...item, created: firebase.firestore.Timestamp.fromDate(new Date()) })
Run Code Online (Sandbox Code Playgroud)


Ali*_*Nem 8

在撰写本文时,接受的解决方案不起作用.表达式firebase.firestore.FieldValue.serverTimestamp()不再有效.在Timestamp现在direcly内firestore.

因此,要以秒为单位获取当前服务器时间,您可以编写

require('firebase-admin').firestore.Timestamp.now()._seconds
Run Code Online (Sandbox Code Playgroud)

  • 实际上,您的答案是指NodeJS Admin SDK。接受的答案使用Javascript客户端SDK (3认同)

Mar*_*cel 5

此解决方案对我有用(2020 年 3 月):

Firestore.instance.collection("item").add({...other items, 'created': FieldValue.serverTimestamp()});
Run Code Online (Sandbox Code Playgroud)

Cloud Firestore 中的结果是:

Cloud Firestore 结果