我想使用firebase和Hashmap,并且尝试了GenericTypeIndicator,但发现以下错误:type inference failed
代码:
val ref = FirebaseDatabase.getInstance().reference.child("aaa").child(game_id).child("bbbb")
ref.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val type = object : GenericTypeIndicator<HashMap<String,String>>() {}
val precios : HashMap<String,String> = dataSnapshot.getValue(type!!)
liveData.postValue(precios)
}
override fun onCancelled(databaseError: DatabaseError) {
}
})
答案 0 :(得分:1)
看起来HashMap
是可选的,因此请尝试一下:
val type = object : GenericTypeIndicator<HashMap<String,String>?>() {}
答案 1 :(得分:0)
我使用了您的快照代码,并对其进行了更改,因此我通过了此错误
val precios : HashMap<String,String> = dataSnapshot.getValue(type)!!
代替
val precios : HashMap<String,String> = dataSnapshot.getValue(type!!)
希望对其他人有帮助,因为它导致其他解决方案对我不起作用
快乐的编码:)