2016-07-26 12 views
12

私はfirebaseの現在のタイムスタンプを取得したい、それを得る方法を見つけることができませんでした。私は画像のように子供を救いたい。そして、私はタイムスタンプを取得し、それに応じて日付を取得する必要があります。あなたは{".sv" : "timestamp"}ペアとMap<String, String>タイプですServerValue.TIMESTAMPを使用して、サーバーの時刻を設定することができます...ファイヤーベースサーバーの現在のタイムスタンプをミリ秒単位で取得する方法は?

here is the result I want to get

+0

サーバー時刻をその形式(dd-mm-yyyy)のキーとして設定することを意味しますか? – Wilik

+0

@wilik。はい、まさに –

答えて

18

助けてください。 firebaseデータベースに送信されると、1469554720のようにロングUnix epoch timeに変換されます。

問題は、これをキーとして直接設定することはできません。最良の方法は、タイムスタンプをオブジェクト内に配置し、保証された一意のキーを取得するためにを使用することです。例

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
String key = ref.push().getKey(); // this will create a new unique key 
Map<String, Object> value = new HashMap<>(); 
value.put("name", "shesh"); 
value.put("address", "lucknow"); 
value.put("timestamp", ServerValue.TIMESTAMP); 
ref.child(key).setValue(value); 

については

あなたは(DD-MM-YYYY)その形式で保存したい場合は、ハックがありますが、これは推奨されません。最初に(ServerValue.TIMESTAMP)を別の一時ノードに保存してから、Dateクラスを使用してその形式に変換する前にタイムスタンプを取得する必要があります。

+0

ありがとうございました。私もこのやり方をすることができます。しかし、このServerValue.TIMESTAMPをキーとして使用することも可能ですか? –

+0

ようこそ。私はそれは可能だと思うが、2つのAPI呼び出しを行い、最初にTIMESTAMP値を設定し、最後に 'Query.limitToLast(1); 'を使って最後のキーを取得すると、2人のユーザーが2つのTIMESTAMPを挿入する確率があるので、同時にあなたは正しい鍵を得ることができません。あなたがそう思ったら、私の答えに合格とマークしてください。 :) – Wilik

関連する問題