我有一个firebase映射对象,我需要在
内插入数组我正在尝试使用更新功能,但不起作用
dialogRef.afterClosed().subscribe(result => {
console.log(result);
const arrayname = result.name;
const fireupdate = this.af.list('/users/' + this.Uid + '/items').update(arrayname, result);
});
这是结果数组的样子
{name: "item", price: 25, desc: "a simple item"}
我在firebase中什么都没得到
答案 0 :(得分:0)
如果我没有记错的话,那么通过执行this.af.list('/users/' + this.Uid + '/items').update()
您实际上是在尝试写Realtime Database,请参见https://github.com/angular/angularfire2/blob/master/docs/rtdb/lists.md#updating-items-in-the-list-using-update
但是您在问题中显示的数据库是Firestore,这是Firebase提供的另一种数据库服务。
您应使用angularfire2库专用于Firestore的部分,请参见https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md#using-angularfirestoredocument
答案 1 :(得分:0)
因此,最简单的方法是将数组添加到文档中,如另一个答案所示。
this.db.collection("users").doc(this.Uid).update({items: [{name: "item", price: 25, desc: "a simple item"}, {name: "item2", price: 20, desc: "a simple item2"}]})
您必须要注意的是,firestore尚不是一种很好的查询对象数组的好方法:
Firestore想要您做的基本上是:
this.db.collection("users").doc(this.Uid).collection('items').add({name: "item", price: 25, desc: "a simple item"})