我在Android项目中使用Firestore
我有一个Transaction
模型,其中包含org.threeten.bp.LocalDateTime date
字段。
当我尝试通过调用DocumentReference
将Transaction
反序列化为docRef.toObject(Transaction.class
模型时,我收到以下错误:
java.lang.RuntimeException:无法反序列化对象。无法将java.lang.String类型的对象转换为org.threeten.bp.LocalDateTime类型(在字段' date'中找到)
这是预期的,因为服务器将日期作为字符串返回 是否可以使用自定义反序列化器?
我知道我可以放弃使用toObject
方法并编写自定义代码,但由于我只需要对单个字段进行自定义反序列化,因此感觉很浪费。
其余字段正确反序列化。
答案 0 :(得分:0)
Firebase数据库和Cloud Firestore无法将任意Java对象序列化到数据库。您必须编写代码才能选择要存储的属性。
如果您在编写此代码时遇到问题,请展示您尝试过的内容,我们可以查看。
请参阅(其中大部分内容适用于实时数据库,但相同的逻辑适用于Cloud Firestore):