在我的Cloud Firestore数据库中,我有一系列文档,包括创建的时间戳。
Env.docRef.collection('collect').add({
name: this.name,
active: true,
created: firebase.firestore.FieldValue.serverTimestamp()
}).then(function(docRef) {
......;
}.bind(this));
当我需要更新/禁用一个文档时,我想创建一个持续时间字段,以表示自创建文档以来的时间。
Env.docRef.collection('collect').doc(this.id).update({
active: false,
ended: firebase.firestore.FieldValue.serverTimestamp(),
duration : ???
}).then(function() {
....;
})
.catch(function(error) {
....;
});
是否可以在查询中建立此持续时间?
答案 0 :(得分:0)
没有像服务器时间戳那样的持续时间简单令牌。如果要在创建字段和结束字段中同时使用服务器时间戳,则要做的是在文档完全写入后读取文档,对时间戳进行数学运算,并将持续时间写回到文档中。
或者,您不需要为查询的持续时间字段建立索引,只需让其他客户端在读取文档时显示日期匹配就可以显示数据。
请注意,使用时间戳进行日期数学运算时,Firestore中的时间戳字段既有秒,又有纳秒级。如果要保留纳秒精度,则除了做简单的减法运算外,还必须要小心。