android - 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.
数据库结构:
解决方案
我认为 firebase 实时数据库将您的principalAddresseCoords视为一个长列表,因此在您的ClientModel 中将principalAddresseCoords的值更改为 emptyList() 和类型List
推荐阅读
- javascript - 如何以数据表形式显示我的 (childData) 数组数据?
- javascript - 如何慢慢淡出彩色框?
- c# - 如何减少构造函数中的参数数量,其中一半是为基类提供的
- c# - 如何向用户提供完成任务所需的进度或估计时间
- azure-sql-database - 查找 Azure SQL Server 的定价层,无需访问订阅但具有管理员登录访问权限
- c# - InverseProperty 的 EF Core 迁移问题
- php - 如何在 laravel 中按时间明智地验证名称
- jquery - 当描述如下时,Bootstrap 的轮播指示器位于图像底部
- python - 使用 python 的 rdflib 框架将三元组从列表添加到图形
- shopify - 如何在 Liquid/Shopify 中过滤特定日期之后的订单?