[英]why don't getValue(nameClass ::class.java) work for me in Kotlin with Firebase in Android
val data = FirebaseDatabase.getInstance()
val refB = data.getReference("branches")
refB.addValueEventListener(object : ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
for(n in snapshot.children){
val branch = n.getValue(Branch::class.java)
listB.add(branch!!)
}
}
override fun onCancelled(error: DatabaseError) {
}
})
我的 class 支行
class Branch(var id: String?, var nStudents: String, var nTeachers: String, var name:String) {
}
我无法读取数据一句话意味着Object,但我可以单独读取数据每个值。
我发现您的自定义 class 存在一些问题:
nStudents
和nTeachers
不会正确地输入 map。nstudents
和nteachers
声明为String
,但我在您的数据库中将其视为数字,因此您可能应该使用Int
或Long
。尽管如此,您更新后的 class 应该如下所示:
class Branch(
var id: String? = null,
var nstudents: Int = 0,
var nteachers: Int = 0,
var name: String = ""
) {
// ...
}
如果这个 class 的唯一目的是保存数据,你可以把它变成一个数据 class :
data class Branch(
var id: String? = null,
var nstudents: Int = 0,
var nteachers: Int = 0,
var name: String = ""
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.