使用Kotlin Firebase Firestore toObject()
我尝试在Kotlin项目中使用Firebase Firestore。 除了当我想用DocumentSnapshot.toObject(Class valueType)实例化对象时,一切都很好。
这里是代码:
FirebaseFirestore .getInstance() .collection("myObjects") .addSnapshotListener(this, { querySnapshot: QuerySnapshot?, e: FirebaseFirestoreException? -> for (document in querySnapshot.documents) { val myObject = document.toObject(MyObject::class.java) Log.e(TAG,document.data.get("foo")) // Print : "foo" Log.e(TAG, myObject.foo) // Print : "" } } })
正如你所看到的,当我使用documentChange.document.toObject(MyObject::class.java)
,我的对象被实例化,但内部字段没有设置。 我知道Firestore需要模型有一个空的构造函数。 所以这里是模型:
class MyObject { var foo: String = "" constructor(){} }
有人能告诉我我做错了什么吗?
谢谢
你忘记了包含公共构造函数的参数,或者你也可以使用默认值的数据类,它应该是足够的:
data class MyObject(var foo: String = "")