我有我的kotlin课程
class Center : Serializable {
var active: Boolean? = null
var address: String? = null
var isJobAccessGranted: Boolean? = null
}
Run Code Online (Sandbox Code Playgroud)
这是我如何获得价值
//from java class
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
centerMap.put(dataSnapshot.getKey(), dataSnapshot.getValue(Center.class));
}
Run Code Online (Sandbox Code Playgroud)
但问题是我active没有任何问题得到了领域的价值.但是isJobAccessGranted布尔字段始终保持为空.我已经测试了一些其他布尔删除is前缀,工作正常.当我使用isActive或时,我没有得到布尔值isJobAccessGranted.任何人都可以解释我为什么面对这个问题.#AskFirebase
android kotlin firebase firebase-realtime-database kotlin-android-extensions
从Firestore中提取数据时,我将.toObject()接收到的数据映射到我的数据类中,即:
data class Img(var event_uid: String = "", var isVip: Boolean = false , var nombre: String = "", var url: String = "")
Run Code Online (Sandbox Code Playgroud)
但是,映射效果不佳。我isVip=>true在任务中收到了该字段,但是对象字段被映射为false(默认值)。
我究竟做错了什么?
编辑:我在Logcat中看到
W/Firestore: (0.6.6-dev) [zzevb]: No setter/field for isVip found on class ***.model.Img
Run Code Online (Sandbox Code Playgroud)
根据Kotlin Docu的说法:
如果属性的名称以is开头,则使用不同的名称映射规则:getter的名称将与属性名称相同,setter的名称将通过用set替换is获得。例如,对于属性
isOpen,将调用getter并将调用isOpen()settersetOpen()。此规则适用于任何类型的属性,而不仅限于Boolean。
也许有Kotlin问题的Firestore?