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 });
})
})
添加回答
舉報