如何将数据设置为Firebase地图对象

时间:2019-05-27 09:51:33

标签: arrays angular typescript firebase

我有一个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中什么都没得到 here is my firebase structure

2 个答案:

答案 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尚不是一种很好的查询对象数组的好方法:

query an array

Firestore想要您做的基本上是:

this.db.collection("users").doc(this.Uid).collection('items').add({name: "item", price: 25, desc: "a simple item"})