firebase数据库:与Kotlin委托属性的模型 [英] firebase db: models with Kotlin delegated properties

查看:100
本文介绍了firebase数据库:与Kotlin委托属性的模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Kotlin对象来处理我的Firebase数据库模型,如在指南。我有很多字段被存储为字符串,但实际上是枚举,所以是类型安全的我在模型中有枚举字段,再加上一个字符串委托属性,返回firebase存储值(如

 抽象类BaseModel {
@Exclude
open var path:String? = null //失败,即使我删除这个领域!



$ B $构造函数BaseModel()$ $ $ $构造函数v:Double,u:WeightUnit:this(){
value = v
unitEnum = u


var value:Double = 0.0
@Exclude
var unitEnum:WeightUnit = WeightUnit.KG
var unit:String通过EnumStringLowercaseConverter(WeightUnit :: class.java).getDelegate(Weight :: unitEnum)


$ b [...]
val testWeight = Weight(7.0 ,kg)
db.getReference(/ valid / path / to / save / testWeight)。setValue(testWeight)
.addOnSuccessListener {r - > Log.d(LOG_TAG,设置成功)}
.addOnFailureListener {e - > Log.e(LOG_TAG,set error,e)}

setValue 始终给出权限被拒绝错误,但是,如果我删除 unitEnum make unit 正常 String 属性。



阅读:Firebase在获取Weight对象时不会出现错误,但 weightUnit 字段永远不会被设置为默认值。但是,如果我手动执行 weight.unit =lb unitEnum 字段正确返回 WeightUnit.LB



我使用的是firebase版本库v10.0.1



现在,问题:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆