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

时间:2017-12-25 10:43:02

标签: firebase google-cloud-firestore

当我使用此代码时:

firestore().collection("item").add({...item, created: firebase.database.ServerValue.TIMESTAMP})

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

3 个答案:

答案 0 :(得分:23)

您似乎在Firestore中创建了一个文档,但尝试从实时数据库中获取时间戳,这是一个不同的Firebase产品。

您可以通过以下方式使用Firestore的时间戳:firebase.firestore.FieldValue.serverTimestamp(),如下所示:

firestore().collection("item")
 .add({...item, created: firebase.firestore.FieldValue.serverTimestamp()})

<击> 2019年2月更新:原始答案已被弃用。 Firestore时间戳的新用法是:

firestore().collection("item")
 .add({...item, created: firebase.firestore.Timestamp.fromDate(new Date()) })

答案 1 :(得分:7)

在撰写本文时,公认的解决方案不起作用。表达式firebase.firestore.FieldValue.serverTimestamp()不再有效。 Timestamp现在直接位于firestore内部。

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

require('firebase-admin').firestore.Timestamp.now()._seconds

答案 2 :(得分:4)

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

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

Cloud Firestore中的结果是:

Cloud Firestore Result