public class OfferModel {
private String mImageUrl;
private String mOfferCode;
private String mOfferTitle;
private String mOfferDescription;
private boolean mIsRunning;
private String mCreatorUid;
private Date mStartDate;
}
其他一切在保存方面都很好.它将Firebase实时数据库保存为
startDate
date: 22
day: 3
hours: 23
minutes: 20
month: 5
seconds: 50
time: 1466617850476
timezoneOffset: -330
year: 116
但是当我尝试检索它时,日期会出现以下错误 –
java.lang.classCastException: java.util.HashMap cannot be cast to java.util.Date
at com.localvine.models.OfferModel.<init>(OfferModel.java:37)
at com.localvine.managers.OfferManager$1.onDataChange(OfferManager.java:62)
at com.google.android.gms.internal.zzafp.zza(UnkNown Source)
at com.google.android.gms.internal.zzagp.zzSu(UnkNown Source)
at com.google.android.gms.internal.zzags$1.run(UnkNown Source)
at android.os.Handler.handleCallback(Handler.java:615)
我了解Firebase不支持Java Date对象,但由于它将它们保存在地图中,我该如何从该地图中取回日期?有没有在Firebase Android中保存和检索日期的正确方法?
解决方法:
您可以将日期存储为纪元日期.您可以使用系统时间System.currentTimeMillis();或者将Firebase服务器时间与其ServerValue.TIMESTAMP一起使用.第一个选项是它随时区和系统设置而变化.因此,如果将日期存储为long,则只需将OfferModel字段mStartDate更改为long,然后使用新Date(long)在检索对象时获取相应的Date.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。