这是我的模型类:
import com.google.firebase.firestore.ServerTimestamp;
import java.util.Date;
public class YourModelClass {
private @ServerTimestamp Date timestamp;
YourModelClass() {}
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
@Override
public String toString() {
return "YourModelClass{" +
"timestamp=" + timestamp +
'}';
}
}
我在Log
中打印时变为null Logger.info("Date", new YourModelClass()+"------"+new YourModelClass().getTimestamp() + "");
这是错误:
Output: 02-22 18:33:12.066 18980-18980/com.spendeye I/Date: YourModelClass{timestamp=null}------null
请让我知道解决方案的人。
答案 0 :(得分:0)
这不是从数据库中检索日期的正确方法。假设您正在使用get()
调用,在将date
检索为类型Date
类的对象时,您需要使用以下代码:
Date date = yourModelClass.getDate();
DateFormat dateFormat = SimpleDateFormat.getDateInstance(DateFormat.MEDIUM, Locale.US); //Or any other locale
String creationDate = dateFormat.format(date);
Log.d("TAG", creationDate);
正如您所看到的,我正在使用从数据库中获取的格式化日期,我不是在创建类的新实例。您也可以在我的 tutorials 中查看此方法,我已逐步解释了如何添加和显示日期。
答案 1 :(得分:0)
如果您在将日志存储到Firestore之前打印日志,那么在将任何类保存到Firestore之前,任何类中timestamp
的属性@ServerTimestamp
的值始终为null。
因此你得到 null 。
如果您可以删除日志语句并让对象保存在Firestore上,那么当您从Firestore中取回该类对象时,日志语句会有所不同,而不是显示为空。