使用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 = "")