如果我要从系统(local date in UTC)
中获取日期,那么当用户更改日期时就会出现问题,如果我将使用服务器日期时间,那么当我离线时我将无法发送消息,这应用程序是使用Firebase real-time DB
答案 0 :(得分:0)
ServerValue.TIMESTAMP
public static final Map<String, String> TIMESTAMP
一个占位符值,用于由Firebase Database
服务器自动填充当前时间戳(自Unix时代以来的时间,以毫秒为单位)。
Example
Ref:https://stackoverflow.com/a/37868163/9909365
ref.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println(dataSnapshot.getValue());
}
public void onCancelled(DatabaseError databaseError) { }
});
ref.setValue(ServerValue.TIMESTAMP);
Extra
Handling Latency
服务器时间戳
Firebase实时数据库服务器提供了一种机制,可以插入在服务器上生成的时间戳作为数据。此功能与onDisconnect
结合使用,提供了一种简单的方法来可靠地记录实时Database client disconnected
的时间:
//Java
DatabaseReference userLastOnlineRef = FirebaseDatabase.getInstance().getReference("users/joe/lastOnline");
userLastOnlineRef.onDisconnect().setValue(ServerValue.TIMESTAMP);
//Kotlin
val userLastOnlineRef = FirebaseDatabase.getInstance().getReference("users/joe/lastOnline")
userLastOnlineRef.onDisconnect().setValue(ServerValue.TIMESTAMP)