firebase.database.DatabaseException: ожидал карту при десериализации, но получил класс java.util.ArrayList - PullRequest
0 голосов
/ 26 сентября 2019

изображение структуры базы данных

Я получаю эту ошибку, скажем

com.google.firebase.database.DatabaseException: ожидал карту при десериализации, но получилкласс java.util.ArrayList

Я пробую какое-то решение из решение1 решение2 и более, плюс некоторое прибегание к поиску в течение нескольких часов, но я не получил никакогорабочее решение.

поэтому, пожалуйста, любой может помочь мне понять эту структуру базы данных образ структуры базы данных и ее решение.

вот мой пример кода

Класс объекта категории

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) {

            }
            .......

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

изменить карту списка вакансий на список списка вакансий в классе модели категории

public class 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;
    }
}
0 голосов
/ 26 сентября 2019

Измените класс 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>).попробуйте это и дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...