如何在聊天应用程序中获取日期,

时间:2019-03-25 13:28:12

标签: android firebase firebase-realtime-database

如果我要从系统(local date in UTC)中获取日期,那么当用户更改日期时就会出现问题,如果我将使用服务器日期时间,那么当我离线时我将无法发送消息,这应用程序是使用Firebase real-time DB

在android中开发的

1 个答案:

答案 0 :(得分:0)

ServerValue.TIMESTAMP

public static final Map<String, String> TIMESTAMP

也:Google Play services

一个占位符值,用于由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)