这个问题通常是由序列化错误引起的,因为模拟器和实际设备之间存在一些差异。您可以尝试使用默认构造函数,或者传递一个空的构造函数到您的类。
以下是一个例子:
data class User(val name: String = "", val email: String = "", val age: Int = 0){ constructor() : this("", "", 0) }
然后您可以使用以下代码将 DocumentSnapshot 转换为您的数据类:
val docRef = db.collection("users").document("ABC") docRef.get().addOnSuccessListener { documentSnapshot -> val user = documentSnapshot.toObject(User::class.java) }
如果您还是遇到问题,请确保在您的应用程序中添加以下依赖项:
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.14.0'
然后添加以下代码以初始化:
val json = Json { ignoreUnknownKeys = true }
val user = json.decodeFromString