android - 如何向对象 Firestore 内的对象数组添加值
问题描述
我正在尝试将自定义对象添加到自定义对象内的数组中,我的意思是我有对象任务我将他保存在云火库中,现在我有几个子任务我想将它们保存在任务对象中,但我每次都想加一个。
我在下面尝试了这段代码:
db.collection(Constants.TASKLIST).document(uid)
.update("subTasks", FieldValue.arrayUnion(subTask));
数据结构
http://www.up2me.co.il/v.php?file=2873228.png
这是我的任务对象,任务和子任务是一样的
公共类任务实现可序列化{
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() {}
}
但它给了我以下错误:
无效数据。不支持的类型:
解决方案
如果我理解正确,您的 ArrayList 包含 Task 类型的对象。Firestore 仅支持一定数量的数据类型,而这似乎不是其中之一。 这是您可以保存在 firestore 数据库中的项目的列表。
例如,您可以将任务保存为参考,或者为了简单起见,只需将文档的 ID 保存为数组中的字符串。
推荐阅读
- javascript - Javascript 错误:在 codepen.io 上未定义 Window.CP
- reactjs - 如何在 React 中根据选择显示内容?
- javascript - 无法将数组从 fetch 分配给变量
- python - 如何在 google colab 中创建实时 matplotlib.pyplot 图?
- azure-devops - 是否可以为多个 nuget 包使用一个 azure 构建来做 monorepo?
- python - 如何将特殊字符转换为空值
- python - 如何使用 BeautifulSoup 获取正确的 html 代码以使用 Python 进行抓取?
- ios - 斯威夫特 nil 任何!= nil
- python - 在Python中,如何实现(多处理池)
- python - python docxtpl - 无法创建动态表单