Firestore自定义`toObject`反序列化

时间:2018-01-28 14:26:09

标签: android serialization google-cloud-firestore

我在Android项目中使用Firestore 我有一个Transaction模型,其中包含org.threeten.bp.LocalDateTime date字段。

当我尝试通过调用DocumentReferenceTransaction反序列化为docRef.toObject(Transaction.class模型时,我收到以下错误:

  

java.lang.RuntimeException:无法反序列化对象。无法将java.lang.String类型的对象转换为org.threeten.bp.LocalDateTime类型(在字段' date'中找到)

这是预期的,因为服务器将日期作为字符串返回 是否可以使用自定义反序列化器?

我知道我可以放弃使用toObject方法并编写自定义代码,但由于我只需要对单个字段进行自定义反序列化,因此感觉很浪费。
其余字段正确反序列化。

1 个答案:

答案 0 :(得分:0)

Firebase数据库和Cloud Firestore无法将任意Java对象序列化到数据库。您必须编写代码才能选择要存储的属性。

如果您在编写此代码时遇到问题,请展示您尝试过的内容,我们可以查看。

请参阅(其中大部分内容适用于实时数据库,但相同的逻辑适用于Cloud Firestore):