我有一个类似这样的数据库设置。
我想用新阵列覆盖阵列学生。
我尝试通过set方法执行此操作,但始终收到错误消息“数据无效。类型不受支持:Models.students”
这是我的代码。
private void update(){
DocumentReference document = db.collection("Records").document(rid);
Map students = new HashMap();
students.put("students", studentsList);
document.set(students);
}
“学生列表”是学生的数组列表(列出<学生>学生列表)
更新
我通过实施道格·史蒂文森的建议解决了这个问题
这是我更新的方法。
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);
}
答案 0 :(得分:1)
Firestore SDK不支持编写包含POJO样式对象数组的字段。这就是错误的原因。
您的替代选择是编写一个HashMap对象的ArrayList,每个对象都包含POJO中包含的字段和值。