亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Firebase 中處理時間戳

在 Firebase 中處理時間戳

MM們 2023-04-14 15:32:39
在 firebase 實時數據庫中,一些看似基本的東西不起作用。這是JS代碼:  let myDBRef = firebase.database().ref('MyCollection');  newItem = myDBRef.push(),  startTime = firebase.database.ServerValue.TIMESTAMP,  endTime = startTime + 24*3600*1000  newItem.set({    someField:'myFieldValue',    startTime:startTime,    endTime:endTime  });結果,我希望數據庫中出現以下內容:  -MXb9s2-3mX3XZL_azRv      endTime: 1601691254295      someField: "myFieldValue"      startTime: 1601604854295但我得到這個:  -MXb9s2-3mX3XZL_azRv      endTime: "[object Object]86400000"      someField: "myFieldValue"      startTime: 1601604854295我做錯了什么以及我需要如何更改 JS 代碼以獲得我期望的結果?
查看完整描述

1 回答

?
慕村9548890

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 });

  })

})


查看完整回答
反對 回復 2023-04-14
  • 1 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號