java– 在Firebase中保存和检索日期

java– 在Firebase中保存和检索日期,第1张

概述我有一个具有以下结构的模型publicclassOfferModel{privateStringmImageUrl;privateStringmOfferCode;privateStringmOfferTitle;privateStringmOfferDescription;privatebooleanmIsRunning;privateStringmCreatorUid;private

我有一个具有以下结构的模型

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.Dateat com.localvine.models.OfferModel.<init>(OfferModel.java:37)at com.localvine.managers.OfferManager.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.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.

总结

以上是内存溢出为你收集整理的java – 在Firebase中保存和检索日期全部内容,希望文章能够帮你解决java – 在Firebase中保存和检索日期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存