在Firebase 即時資料庫中,維護準確的時間戳記對於排序、追蹤變更和確保資料完整性至關重要。透過資料庫的控制面板新增值時,您可能想要自動擷取目前日期和時間。本文介紹如何使用 ServerValue.TIMESTAMP 實現此目的。
最佳實踐是使用 ServerValue.TIMESTAMP 將時間戳保存為 TIMESTAMP 資料類型。這確保了資料庫在新增值時自動設定時間戳記。
DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); Map map = new HashMap(); map.put("timestamp", ServerValue.TIMESTAMP); ref.child("yourNode").updateChildren(map);
檢索時間戳時,它將儲存為 Long 值。要以人類可讀的格式取得日期和時間,可以使用以下方法:
public static String getTimeDate(long timestamp){ try{ DateFormat dateFormat = getDateTimeInstance(); Date netDate = (new Date(timestamp)); return dateFormat.format(netDate); } catch(Exception e) { return "date"; } }
編輯: 要在模型類別中正確儲存時間戳,您可以定義Map
public class YourModelClass { private Map<String, String> timestamp; @ServerTimestamp public void setTimestamp(Map<String, String> timeStamp) {this.timestamp= timestamp;} public Map<String, String> getTimestamp() {return timestamp;} }
另一種方法是在 Firebase 中建立一個傳回目前伺服器時間戳記的雲端函數。然後,您可以從前端程式碼中檢索此時間戳。
exports.currentTime = functions.https.onRequest((req, res) => { res.send({"timestamp":new Date().getTime()}) })
此方法提供了一種一致且可靠的方法來取得伺服器時間戳,而無需使用者互動。
以上是如何自動為 Firebase 即時資料庫項目新增時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!