首頁 >Java >java教程 >如何自動為 Firebase 即時資料庫項目新增時間戳記?

如何自動為 Firebase 即時資料庫項目新增時間戳記?

Susan Sarandon
Susan Sarandon原創
2024-12-27 13:51:14670瀏覽

How Can I Automatically Add Timestamps to Firebase Realtime Database Entries?

自動追蹤Firebase 即時資料庫新增中的時間​​戳記

在Firebase 即時資料庫中,維護準確的時間戳記對於排序、追蹤變更和確保資料完整性至關重要。透過資料庫的控制面板新增值時,您可能想要自動擷取目前日期和時間。本文介紹如何使用 ServerValue.TIMESTAMP 實現此目的。

使用 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 類型的欄位並使用@ServerTimestamp 註解。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn