pb4*_*now 3 angularjs firebase angularfire google-cloud-firestore
在这里整天用这个东西杀了我自己,我有两个部门和Articals:
export class Department {
articals?: Artical[]=[];
moms?: number;
id?: string;
constructor() {
}
}
Run Code Online (Sandbox Code Playgroud)
和:
export class Artical {
moms?: number;
price: number;
name?: string;
constructor() {
}
}
Run Code Online (Sandbox Code Playgroud)
喜欢你可以看到部门包含一个'Articals'数组,所以我正在用新的articals(及其属性)构建新的部门,并试图将它添加到fireStore:
this.departmetsCollection.doc(departmentId).set(Object.assign({},
myDepartment));
Run Code Online (Sandbox Code Playgroud)
但得到错误:"函数DocumentReference.set()调用无效数据.不支持的字段值:自定义Artical对象"
Ps尝试只将部分艺术品添加到部门的路径中
doc(departmentId).set({'articals':myArticals});
Run Code Online (Sandbox Code Playgroud)
并且使用'update'而不是'set'但也没有任何帮助:S将这种对象添加到firestore是正确的?
Firestore仅接受嵌入在文档中的JavaScript对象(如果它是"纯"对象),这意味着在使用TypeScript进行开发时不能使用自定义对象.因此,在将对象推送到articals数组之前,您必须映射它们.
首先更改您的Department类:
export class Department {
articals?: Array<any>=[];
moms?: number;
id?: string;
constructor() {
}
}
Run Code Online (Sandbox Code Playgroud)
第二个映射你的"Artical"数组:
var map = arrayOfArtical.map((obj)=> {return Object.assign({}, obj)});
Run Code Online (Sandbox Code Playgroud)
然后你可以将地图值归因于'this.myDepartment.articals'
this.myDepartment.articals = map;
Run Code Online (Sandbox Code Playgroud)
之后你可以执行:
this.departmetsCollection.doc(departmentId).set(Object.assign({},
myDepartment))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |