如何以毫秒为单位获取Firebase服务器的当前时间戳?
我想获取firebase当前时间戳,无法找到一个方法来获取。我想按照图中所示保存孩子。为此我必须得到时间戳并相应地得到日期。请帮助...如何以毫秒为单位获取Firebase服务器的当前时间戳?
您可以通过使用ServerValue.TIMESTAMP
这是一个Map<String, String>
型与{".sv" : "timestamp"}
对设置服务器的时间。当它被发送到firebase数据库时,它将被转换为一个长Unix epoch time像这样1469554720
。
所以问题是,你不能直接设置这个键。最好的方法是将时间戳放入对象中,并使用DatabaseReference.push()
来获得有保证的唯一密钥。
例如
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
类将其转换为该格式。
非常感谢你..我试了这个,它的工作正常。我也可以这样做。但是又可以使用这个ServerValue.TIMESTAMP作为关键吗? –
不客气。我认为这是可能的,但会有两个API调用,首先设置TIMESTAMP值,然后通过使用Query.limitToLast(1);来获取最后一个键,但不建议这样做,因为有可能两个用户插入了两个TIMESTAMP在同一时间,所以你不能得到正确的钥匙。顺便说一句,如果你这么认为,请将我的答案标记为已接受。 :) – Wilik
你的意思是你想将服务器时间设置为该格式的键(dd-mm-yyyy)吗? – Wilik
@wilik。是的,正是 –