我有一组尝试保存的登录用户设置。我找不到一种内置的方式来允许我处理添加的记录的更新时间戳。
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
方法。如果该记录已经存在,我不想对其进行更新。我希望有一种方便的方法来做到这一点。
谢谢!
答案 0 :(得分:1)
另一种可能性是使用一组onCreate()
和onUpdate()
触发的Firebase云功能。换句话说,创建和更新日期写在后端。
请参阅以下答案:How to add timestamp to every collection insert,update in firebase functions for firestore database
答案 1 :(得分:0)
您可以在该文档上执行transaction,然后在事务处理程序中查询并检查它。如果该文档已经存在,您还可以查看其中包含哪些字段,并仅根据检查的需要更新该文档。
但是,如果您的客户代码对确定首次创建文档的时间有所了解,则可能会更容易。