我正在尝试将自定义对象添加到自定义对象内部的数组中, 我的意思是我有对象任务,我将他保存在了Cloud Firestore中,现在我有几个子任务要保存在任务对象中,但是我想每次添加一个。
我在下面尝试了此代码:
db.collection(Constants.TASKLIST).document(uid)
.update("subTasks", FieldValue.arrayUnion(subTask));
数据结构
http://www.up2me.co.il/v.php?file=2873228.png
这是我的任务对象,任务和子任务相同
公共类Task实现了可序列化的{
private String description;
private String deadline;
private ArrayList<Task> subTasks;
public Task(String description, String deadline) {
this.description = description;
this.deadline = deadline;
this.subTasks = new ArrayList<>();
}
public String getDeadline() {
return deadline;
}
public String getDescription() {
return description;
}
public ArrayList<Task> getSubTasks() {
return subTasks;
}
public void setSubTasks(ArrayList<Task> subTasks) {
this.subTasks = subTasks;
}
public Task(String description) {
this.description = description;
}
public Task() {}
}
但是它给了我以下错误:
无效数据。不支持的类型:
答案 0 :(得分:0)
如果我理解正确,则您的ArrayList包含Task类型的对象。 Firestore仅支持一定数量的数据类型,但似乎不是其中一种。 Here是您可以保存在Firestore数据库中的项目的列表。
例如,您可以做的就是将任务另存为引用,或者简单地说,只需将文档的ID作为字符串保存在数组中即可。