Как установить и переписать целый массив в firestore - PullRequest
0 голосов
/ 22 марта 2019

У меня есть настройка базы данных, которая выглядит следующим образом.

enter image description here

Я хочу перезаписать студентов массива моим новым массивом.

Я пытался сделать это методом set, но постоянно получаю сообщение об ошибке «Неверные данные. Неподдерживаемый тип: Models.students»

Вот мой код.

 private void update(){
    DocumentReference document = db.collection("Records").document(rid);
        Map students = new HashMap();
        students.put("students", studentsList);
        document.set(students);
    }

"Studentslist" - это список студентов (List Students List)

Обновление

Я решил проблему, выполнив то, что предложил Дуг Стивенсон

Вот мой обновленный метод.

private void update(){
       DocumentReference document = db.collection("Records").document(rid);
       List<Map> mapList = new ArrayList<>();
       for(int i=0; i< studentsList.size(); i++){
           Map student = new HashMap();
           student.put("name", studentsList.get(i).getName());
           student.put("id", studentsList.get(i).getId());
           student.put("attended", studentsList.get(i).isAttended());
           mapList.add(student);
       }
       document.update("students", mapList);
    }

1 Ответ

1 голос
/ 22 марта 2019

Firestore SDK не поддерживает запись поля, представляющего собой массив объектов в стиле POJO. Вот причина ошибки.

Вместо этого вы можете написать ArrayList объектов HashMap, каждый из которых содержит поля и значения, содержащиеся в POJO.

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