如何在 Firestore 中保存时间戳?

IO *_*evs 2 java android firebase google-cloud-firestore

我正在开发一个聊天应用程序,我想存储我的消息的时间戳。我的消息数据类是:

import com.google.firebase.firestore.ServerTimestamp;
import java.util.Date;

public class messgaesDataClass {
    private String messageText;
    private int messageStatus;
    private String messagefrom;
    private @ServerTimestamp Date timestamp;

    public messgaesDataClass(String messageText, int messageStatus, String messagefrom, Date time) {
        this.messageText = messageText;
        this.messageStatus = messageStatus;
        this.messagefrom = messagefrom;
        this.time = time;
    }

    public messgaesDataClass() {
    }

    public String getMessageText() {
        return messageText;
    }

    public void setMessageText(String messageText) {
        this.messageText = messageText;
    }

    public int getMessageStatus() {
        return messageStatus;
    }

    public void setMessageStatus(int messageStatus) {
        this.messageStatus = messageStatus;
    }

    public String getMessagefrom() {
        return messagefrom;
    }

    public void setMessagefrom(String messagefrom) {
        this.messagefrom = messagefrom;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白如何制作这个类的对象。我可以在这个类的构造函数中传递什么来初始化时间戳属性?

Ale*_*amo 5

要解决这个问题,您应该删除Date time作为构造函数的参数。你的构造函数应该是这样的:

public messgaesDataClass(String messageText, int messageStatus, String messagefrom) {
    this.messageText = messageText;
    this.messageStatus = messageStatus;
    this.messagefrom = messagefrom;
}
Run Code Online (Sandbox Code Playgroud)

无需time在构造函数中初始化对象。Firebase 服务器将读取您的time字段ServerTimestamp(由于注释),并相应地使用服务器时间戳填充该字段。

  • @AmitMishra OP 正在寻找 Android 中的解决方案,而该答案适用于 Javascript。 (2认同)