#java #android #arraylist #google-cloud-firestore
#java #Android #список массивов #google-облако-firestore
Вопрос:
У меня есть настройка базы данных, которая выглядит следующим образом.
Я хочу перезаписать массив students своим новым массивом.
Я пытался сделать это методом 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» — это массив студентов (список< студенты> studentslist)
Обновить
Я решил проблему, реализовав то, что предложил Дуг Стивенсон
Вот мой обновленный метод.
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:
Firestore SDK не поддерживает запись поля, представляющего собой массив объектов в стиле POJO. В этом причина ошибки.
Ваша альтернатива — вместо этого написать ArrayList объектов HashMap, каждый из которых содержит поля и значения, содержащиеся в POJO.