Android 如何存储Firebase服务器时间戳加上30秒?
我正在Firebase实时数据库中存储对象。对象如下所示:Android 如何存储Firebase服务器时间戳加上30秒?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在Firebase实时数据库中存储对象。对象如下所示: import com.google.firebase.database.ServerValue; public class Message { private Object timestamp = ServerValue.TIMESTAMP; private String source = "client"; private String req; private String ack = null;
import com.google.firebase.database.ServerValue;
public class Message {
private Object timestamp = ServerValue.TIMESTAMP;
private String source = "client";
private String req;
private String ack = null;
private int pos;
Message(){}; // needed for Firebase when converting DataSnapshot to Message object
Message(String req, int pos) {
this.req = req;
this.pos = pos;
}
public Object getTimestamp() {
return timestamp;
}
public String getSource() {
return source;
}
public String getReq() {
return req;
}
public String getAck() {
return ack;
}
public int getPos() {
return pos;
}
}
我还没有尝试过,不过在将对象存储到Firebase上时应该正确填充时间戳
现在我的问题是:如何添加过期属性?过期时间等于时间戳加上30秒,如下所示:
private Object expiration = ServerValue.TIMESTAMP + <30 seconds>;
private Object expiration=ServerValue.TIMESTAMP+;
不幸的是,这是不可能的。ServerValue.TIMESTAMP
唯一受支持的用法是将服务器时钟的精确值存储在该子项中。这是一个标记值,而不是一个精确的数字。在Firebase收到令牌并将其转换为数字之前,确切的数字是未知的
您唯一的解决方法是使用后端执行写入,或者让客户端在写入后读取值,并向其添加30秒,然后将其写回