2 回答
TA贡献1848条经验 获得超10个赞
好的,我发现了这个:查询答案是 Hashmap<String, Hashmap<String, String>>
所以我不得不:
添加一个“order by”子句 -> 使用第一级哈希图(我不知道为什么)
,这似乎是列表查询所必需的
创建我的“用户”类的自定义映射
所以代码看起来像这样:(“用户”类没有变化)
public static void readUsersJava (){
setUsersMapConverter()
GdxFIRDatabase.instance().inReference("users")
.orderBy(OrderByMode.ORDER_BY_KEY, null)
.filter(FilterType.LIMIT_FIRST, 5)
.readValue(List.class, new DataCallback<List<UserPOJO>>(){
...
});
}
和
fun setUsersMapConverter(){
GdxFIRDatabase.instance().setMapConverter(object : FirebaseMapConverter {
override fun <T : Any?> convert(map: MutableMap<String, Any>, wantedType: Class<T>): T {
val element = (map.get(map.keys.first())) as HashMap<String, String>
return UserPOJO(element.get("displayName"), element.get("email")) as T
}
// Should be inversion of convert (needed only by GWT platform)
override fun unConvert(`object`: Any): Map<String, Any>? {
return null
}
})
}
希望能有所帮助。
如果您找到更好的解决方案,请告诉我。
添加回答
举报