java - firebase.database.DatabaseException:反序列化时需要一个 Map,但得到一个类 java.util.ArrayList
问题描述
我收到这个错误说
com.google.firebase.database.DatabaseException:反序列化时需要一个 Map,但得到了一个类 java.util.ArrayList
我尝试了一些来自解决 方案 1 解决方案 2 等的解决方案,再加上几个小时的谷歌搜索,但我没有得到任何可行的解决方案。
所以请任何人都可以帮助我理解这个firebase结构数据库结构图像及其解决方案。
这是我的示例代码
类别对象类
public class Category {
private String link;
private String categoryName;
private String activeJob;
private Map<String, JobList> jobList;
....
public Map<String, JobList> getJobList() {
return jobList;
}
public void setJobList(Map<String, JobList> jobList) {
this.jobList = jobList;
}
}
作业列表对象类
public class JobList {
private String employerName;
private String jobClosingDate;
private String jobCode;
private String jobTitle;
private String jobLink;
private String status;
private String updatedDate;
在 MainActivity
public void getJobListFromFirebase() {
ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
categories = dataSnapshot.getValue(Category.class);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
.......
解决方案
将您的课程更改category
为:
private String link;
private String categoryName;
private String activeJob;
private List<JobList> jobList;
....
public List<JobList> getJobList() {
return jobList;
}
public void setJobList(List<JobList> jobList) {
this.jobList = jobList;
}
}
从您的数据库结构中,我们可以做类似List<JobList>
或Map<Int,JobList>
(不是Map<String,JobList>
)的事情。试试这个,让我知道。
推荐阅读
- php - 如何对 PHP 数组进行排序,其中的值是由“-”分隔的字符串
- java - 在 javafx 中检测运动
- php - 使用四级 If Else 语法和百分比
- android - 在 ExoPlayer 中获取视频分辨率
- node.js - 想在数据库中保存聊天ID(电报机器人)
- loops - 启用 SSL 后的 DIrectadmin 重定向过多
- javascript - 如何更新现有资产?- 超级账本作曲家
- php - PHP展平目录
- azure - Azure 使用情况报告中的“费率”不同于 Ratecard API - MeterRates
- javascript - 使用 vue-multiselect 作为 laravel 的输入字段