他可能会被问到很多次,但是没有一个解决方案对我不起作用。现在让我告诉你,到目前为止,我只是使用简单的模型类在Cloud Firestore db中保存值,而在那个模型类中使用了timestamp字段,但在插入我的时间戳记时始终为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数据库中始终为空。
答案 0 :(得分:1)
您总是得到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; }
}