Kotlin Android Firebase数据库散列图转换为类

我正在尝试从Firebase数据库获取数据。 断点显示它正在获取数据,但是看起来我没有正确地将其分配给我的class级。

这导致这个例外:

java.lang.ClassCastException:java.util.HashMap不能转换为Class

override fun onDataChange(p0: DataSnapshot?) { if (p0!!.exists()){ val children = p0!!.children children.forEach { println(it.value.toString()) var item : DashboardItem = it.value as DashboardItem println(item) } } } 

这是数据库导出:

 { "dashboard" : [ { "name" : "News"}, { "name" : "Chatroom"}, { "name" : "Music"}, { "name" : "Quotes"}, { "name" : "Reminder"}, { "name" : "Poll"}, { "name" : "Suggestion"}, { "name" : "LogOut"} ] } 

我想要创建的类对象

 data class DashboardItem(val name: String = "") 

问题: DataSnapshot#getValue()将仅返回native types

 Boolean String Long Double Map // closest to your object representation List 

其中Map将在请求时作为对象返回,因此在应用显式强制转换时出现错误

所以改为使用DataSnapshot#getValue(Class valueType)作为

 val item : DashboardItem = it.getValue(DashboardItem::class.java)