具有更新和创建时间戳记的Google Firestore

时间:2018-10-18 20:11:52

标签: javascript firebase vue.js google-cloud-firestore

我有一组尝试保存的登录用户设置。我找不到一种内置的方式来允许我处理添加的记录的更新时间戳。

db = firebase.firestore()
settingsCollection = db.collection('settings')

let userSetting = fb.settingsCollection.doc(this.userId)

//store the settings in firebase
var setWithMerge = userSetting.set({
   createdOn: new Date(),
   updatedOn: new Date(),
   filters: {showTestOrders: show},
   userId: this.userId
 }, {merge: true}).then(ref => {
    //console.log(ref) 
 }).catch(err => {
    console.log(err)
 })

根据文档,.set()方法将创建或更新记录。 (https://firebase.google.com/docs/firestore/manage-data/add-data

有人可以建议一种有效的方式来处理时间戳吗?由于记录存在,因此我目前的方法总是更新createdOn方法。如果该记录已经存在,我不想对其进行更新。我希望有一种方便的方法来做到这一点。

谢谢!

2 个答案:

答案 0 :(得分:1)

另一种可能性是使用一组onCreate()onUpdate()触发的Firebase云功能。换句话说,创建和更新日期写在后端。

请参阅以下答案:How to add timestamp to every collection insert,update in firebase functions for firestore database

答案 1 :(得分:0)

您可以在该文档上执行transaction,然后在事务处理程序中查询并检查它。如果该文档已经存在,您还可以查看其中包含哪些字段,并仅根据检查的需要更新该文档。

但是,如果您的客户代码对确定首次创建文档的时间有所了解,则可能会更容易。