Firebase Realtime Database では、正確なタイムスタンプを維持することが、順序付け、変更の追跡、データの整合性の確保にとって重要です。データベースのコントロール パネルから新しい値を追加するときに、現在の日付と時刻を自動的に取得したい場合があります。この記事では、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;} }
もう 1 つのアプローチは、現在のサーバーのタイムスタンプを返す Cloud Function を Firebase で作成することです。その後、フロントエンド コードからこのタイムスタンプを取得できます。
exports.currentTime = functions.https.onRequest((req, res) => { res.send({"timestamp":new Date().getTime()}) })
このメソッドは、ユーザーの介入なしでサーバーのタイムスタンプを取得する一貫した信頼性の高い方法を提供します。
以上がFirebase Realtime Database エントリにタイムスタンプを自動的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。