Firestore - 添加带有数组的对象
整天在这里玩这个东西,让我有点自闭,我有两个类:Department和Articals:
export class Department {
articals?: Artical[]=[];
moms?: number;
id?: string;
constructor() {
}
}
还有:
export class Artical {
moms?: number;
price: number;
name?: string;
constructor() {
}
}
你可以看到departments包含一个“Articals”数组,因此我正在构建一个新的Department,其中包含新的articals(和它们的属性),并尝试将其添加到fireStore中:
this.departmetsCollection.doc(departmentId).set(Object.assign({},
myDepartment));
但是出现了错误: “Function DocumentReference.set() called with invalid data. Unsupported field value: a custom Artical object”
尝试仅将articals数组添加到部门路径中:
doc(departmentId).set({'articals':myArticals});
并使用“update”而不是“set”,但是没有帮助,正确的方法是什么,可以添加这种对象到firestore中?
Firestore只接受嵌入在文档中的JavaScript对象,如果它是一个“纯”对象,这意味着在TypeScript中开发时不能使用自定义对象。所以在将它们推送到文章数组之前,您必须映射您的对象。
首先更改您的Department类:
第二步映射您的“Artical”数组:
然后,您可以将映射值分配给“this.myDepartment.articals”
之后,您可以执行: