1 回答
TA贡献1884条经验 获得超4个赞
这firebase.database.ServerValue.TIMESTAMP
不是当前的服务器端时间戳,而是在写入数据库时转换为实际服务器端时间戳的标记值。
这意味着您不能像现在这样一步一步地存储计算值。你有两个选择:
存储duration而不是endTime。所以:
let myDBRef = firebase.database().ref('MyCollection');
newItem = myDBRef.push(),
startTime = firebase.database.ServerValue.TIMESTAMP,
duration = 24*3600*1000
newItem.set({
someField:'myFieldValue',
startTime:startTime,
duration:duration
});
首先存储startTime,然后endTime在客户端或 Cloud Function 中计算,然后更新数据库。这会是这样的:
let myDBRef = firebase.database().ref('MyCollection');
newItem = myDBRef.push(),
startTime = firebase.database.ServerValue.TIMESTAMP,
duration = 24*3600*1000
newItem.set({
someField:'myFieldValue',
startTime:startTime,
}).then(() => {
newItem.child("startTime").once("value").then((snapshot) => {
newItem.update({ endTime: snapshot.val() + duration });
})
})
添加回答
举报