我有一个班级(比如说Class A
)有一个字段LocalDate localDate
(Java.time),我考虑过使用LocalDate
因为我想要保存'日期& #39;没有'时间'。我想将此类A的对象保存到firebase数据库。由于LocalDate
是serializable
,我以为我可以轻松地将其保存在FB数据库中,但在实际实现时,我收到了此错误:
'firebase.database.DatabaseException: Found conflicting getters for name: getChronology'
我在Twitter上发布了这个,并得到了@puf和doug的快速回复。
我确实得到了一些帮助,但我仍然在寻找几个问题的答案:
是否有一种简单而通用的方法可以将我的模型中的字段保持为LocalDate
,并在存储到数据库中时将其用作String
?类似overriding
toString()
方法的内容(虽然覆盖toString()
不会在此处工作,因为Firebase不使用serializable来获取对象数据)。
什么是最佳解决方案"如何将日期保存到Firebase数据库"?
答案 0 :(得分:2)
正如我在跟进推文中暗示的那样,符合您的最佳利益:
原因如下:
long
日期转换为该派生对象的getter和setter,甚至不知道它是否将被使用。根据需要延迟更简单,更有效。最重要的是,不要将实用程序类与数据模型一起使用,这样更容易,更灵活,更高效。当Firebase包含存储的原始数据时,数据模型可以更好地与Firebase一起使用。
请注意,对于Firestore,大多数平台上的本机Date对象类型都有特殊处理。因此,如果您想要移植到Firestore,最好使用平台的日期类型来读取和写入Firestore时间戳字段。