ホームページ > Java > &#&チュートリアル > Firebase Realtime Database エントリにタイムスタンプを自動的に追加するにはどうすればよいですか?

Firebase Realtime Database エントリにタイムスタンプを自動的に追加するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-27 13:51:14
オリジナル
671 人が閲覧しました

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

Firebase Realtime Database の追加でタイムスタンプを自動的に追跡する

Firebase Realtime Database では、正確なタイムスタンプを維持することが、順序付け、変更の追跡、データの整合性の確保にとって重要です。データベースのコントロール パネルから新しい値を追加するときに、現在の日付と時刻を自動的に取得したい場合があります。この記事では、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";
    }
}
ログイン後にコピー

Edit: タイムスタンプをモデル クラスに適切に保存するには、次のように定義します。 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;}
}
ログイン後にコピー

Cloud Functions を使用した代替アプローチ

もう 1 つのアプローチは、現在のサーバーのタイムスタンプを返す Cloud Function を Firebase で作成することです。その後、フロントエンド コードからこのタイムスタンプを取得できます。

exports.currentTime = functions.https.onRequest((req, res) => {
    res.send({"timestamp":new Date().getTime()})
})
ログイン後にコピー

このメソッドは、ユーザーの介入なしでサーバーのタイムスタンプを取得する一貫した信頼性の高い方法を提供します。

以上がFirebase Realtime Database エントリにタイムスタンプを自動的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート