Kotlin Firebase解析复制

时间:2018-09-12 21:49:05

标签: android firebase kotlin google-cloud-firestore

因此,我有一个Game对象,该对象具有一个init块,在该块中,我可以设置该对象并将其上传到Firebase Firestore。然后,当我在侦听该对象中的更改时,必须将DocumentSnapshot转换为Game对象。

game = snapshot.toObject(Game::class.java)

非常简单。问题是这将调用我的Game类的init块并上载另一个游戏对象。有没有一种方法可以避免在执行此操作时调用init块?谢谢!

2 个答案:

答案 0 :(得分:3)

当您使用这种自动字段映射时,约定是您应该使用一个类定义,该类定义仅包含要映射的字段,而没有其他内容。仅具有属性的getter和setter的对象称为JavaBeans,其唯一目的是存储数据。这些对象必须定义默认的无参数构造函数。

如果您还有其他与Game对象一起使用的逻辑,则应将其放在另一个类中。最好是将您的数据与使用该数据的逻辑分开(如您所发现的)。

答案 1 :(得分:0)

将初始化代码移至构造函数,在创建Game类的实例并希望其上载游戏对象时可以调用该构造函数。