首页 >Java >java教程 >如何在 Firebase 实时数据库中高效存储和检索时间戳?

如何在 Firebase 实时数据库中高效存储和检索时间戳?

Linda Hamilton
Linda Hamilton原创
2024-12-14 01:42:11119浏览

How to Efficiently Store and Retrieve Timestamps in Firebase Realtime Database?

如何使用新的 Firebase 实时数据库条目存储当前日期/时间

通过控制面板将新数据添加到 Firebase 实时数据库时,用户通常需要包括当前日期和时间。此数据可用于跟踪用户活动、管理日志或排序和过滤条目。

建议的方法是将当前日期和时间存储为 TIMESTAMP。 Firebase 提供了一个 ServerValue.TIMESTAMP 常量,在写入操作期间用作子值时,该常量会自动生成服务器端时间戳。

要使用 Java 将 TIMESTAMP 包含在数据中,请使用以下代码:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Map<String, Object> map = new HashMap<>();
map.put("timestamp", ServerValue.TIMESTAMP);
ref.child("yourNode").updateChildren(map);

要在 Java 中以 Long 形式检索 TIMESTAMP,请使用以下代码:

public static String getTimeDate(long timestamp) {
    try {
        DateFormat dateFormat = getDateTimeInstance();
        Date netDate = new Date(timestamp);
        return dateFormat.format(netDate);
    } catch (Exception e) {
        return "date";
    }
}

在您的模型中类中,时间戳字段应表示为:

public class YourModelClass {
    private Map<String, String> timestamp;

    public YourModelClass() {}

    // Public getters and setters for timestamp
}

请记住,使用 ServerValue.TIMESTAMP 时,时间戳仅在写入操作完成后出现在数据库中。

另一种方法使用Cloud Functions

获取当前时间戳的另一种方法是使用 Cloud Functions for Firebase。这可以通过以下代码来完成:

exports.currentTime = functions.https.onRequest((req, res) => {
    res.send({"timestamp": new Date().getTime()})
});

在云端托管此函数允许您无需用户交互即可获取服务器时间戳。

以上是如何在 Firebase 实时数据库中高效存储和检索时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn