可能会多次询问他,但是没有一个解决方案对我不起作用。现在让我告诉你,到目前为止,我尝试使用简单模型类将值保存在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/