javascript - Firebase Firestore 不保存数组数据
问题描述
在过去的几天里,我一直在努力解决这个问题。我正在尝试将数据保存到 firebase 集合。但是,firebase 拒绝保存字符串数组。除了显示为空的数组外,所有内容都已保存。但我确定数组不是空的。我什至直接在函数中打印出来,它可以工作。
uploadTask(taskForm: any, attachedFiles: Array<any>) {
console.log(attachedFiles);
const task = this.fireStore
.collection('tasks')
.doc(this.userId + uuidv4())
.set({
title: taskForm.title,
description: taskForm.description,
subject: taskForm.subject,
urgency: taskForm.urgency,
budget: taskForm.budget,
time: taskForm.time,
files: attachedFiles,
})
.then(() => {
console.log('Document successfully written!');
})
.catch((error) => {
console.error('Error writing document: ', error);
});
}
解决方案
当您使用“设置”时,您正在使用该文档的 id 或字段修改已经存在的文档。如果我理解您的问题,您正在尝试创建一个全新的文档,因此您必须改用“添加”方法。请记住,firestore 将为创建的每个文档自动创建自己的唯一 ID。您无需指定 ID。
因此,您的代码应读作
uploadTask(taskForm: any, attachedFiles: Array<any>) {
const task = this.fireStore
.collection('tasks').add({ /*<===use add here*/
title: taskForm.title,
description: taskForm.description,
subject: taskForm.subject,
urgency: taskForm.urgency,
budget: taskForm.budget,
time: taskForm.time,
files: attachedFiles,
})
.then(() => {
console.log('Document successfully written!');
})
.catch((error) => {
console.error('Error writing document: ', error);
});
}
这个答案可能会帮助您[firestore set 和 add 之间的区别][1]
推荐阅读
- amazon-web-services - CloudFormation - 使用 ->- 表达式和 !Sub
- python-3.x - 在其他文件中导入文件时 pychram 出错
- sql-server - DbCreator 角色可以恢复数据库,但不能在 MSSQL Server 中访问它
- date - 如何使用周值配置单元获取月值
- ruby-on-rails - 如何在 Ruby on Rails 5.2 中使用原始 Postgres SQL 查询结果?
- javascript - 我在 p5js 编辑器的第 0 行收到脚本错误
- python - 通过 bash 终端为不同的输入目录运行 python 脚本
- git - 找不到 git-lfs 命令
- python - 如何在 Python/Plotly 等值线图中放大地理地图?
- sql-server - 获取 SQL Server 数据库中的所有表,除了一些选定的表?