首页 > 解决方案 > Firebase RealtimeDatabase 检索快照对象异常

问题描述

这是我的模型课

    @Parcel
data class ClientModel(
    var name: String? = "",
    var phone: String? = "",
    var princpalAddresse: String? = "",
    var homeAddresse: String? = "",
    var travailleAddresse: String? = "",
    var email: String? = "",
    var userToken: String? = "",
    var principalAddresseCoords: Pair<Double, Double>? = null,
    var homeAddresseCoords: Pair<Double, Double>?= null,
    var workAddresseCoords: Pair<Double, Double>? = null,
)

我的 proGuard 文件保留了课程:

 -keep class com.olivier.oplivre.models.ClientModel

但!当我尝试使用singleValueEventListener获取快照时,由于 Pair<Double,Double> 变量而出现异常

   val utilisationInfo =  snapshot.getValue(ClientModel::class.java) //todo CRASH

例外 :

com.google.firebase.database.DatabaseException: Class kotlin.Pair does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.

数据库结构:

在此处输入图像描述

标签: androidfirebasekotlinfirebase-realtime-database

解决方案


我认为 firebase 实时数据库将您的principalAddresseCoords视为一个列表,因此在您的ClientModel 中将principalAddresseCoords的值更改为 emptyList() 和类型List


推荐阅读