可能会多次询问他,但是没有一个解决方案对我不起作用。现在让我告诉你,到目前为止,我尝试使用简单模型类将值保存在Cloud Firestore db中的方法,而该模型类中使用时间戳字段,但是在插入我的时间戳记始终为null时,不知道在哪里出错了,现在让我发布我的代码:

 import com.google.firebase.firestore.ServerTimestamp;

    import java.util.Date;

      public class DriverMasterModel {

    private String test;
    @ServerTimestamp
    private Date date;

    public DriverMasterModel() {}

    public DriverMasterModel(String test) { this.test = test; }

    public String getTest() { return test; }
    @PropertyName("Created_At")
    public Date getDate() { return date; }
}


然后将数据插入db:

DriverMasterModel driverMasterModel=new DriverMasterModel();
                driverMasterModel.setTest("test");
                FirebaseFirestore dbb=FirebaseFirestore.getInstance();
                dbb.collection("Test").add(driverMasterModel).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                    @Override
                    public void onSuccess(DocumentReference documentReference) {

                    }
                });


但是我的Created_at字段在Firestore数据库中始终为null。

最佳答案

您总是得到null,因为您的模型类是错误的。您的MasterModel类应如下所示:

public class MasterModel {
    private String test;
    @ServerTimestamp
    private Date date;

    public MasterModel() {}

    public MasterModel(String test) { this.test = test; }

    public String getTest() { return test; }

    public Date getDate() { return date; }
}


参见,类的名称与构造函数的名称相同,并且Date对象的名称为简单的date而不是Created_At

编辑:根据您的评论,请查看您的模型类的新配置:

public class MasterModel {
    private String test;
    @ServerTimestamp
    private Date createdAt, updatedAt;

    public MasterModel() {}

    public MasterModel(String test) { this.test = test; }

    public String getTest() { return test; }

    public Date getCreatedAt() { return createdAt; }

    public Date getUpdatedAt() { return updatedAt; }
}

关于java - 在Android中使用模型类时,Firestore FieldValue.ServerTimestamp始终为null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51358563/

10-11 17:14