如何在AngularFire2中推送数组中的元素?

时间:2017-02-02 18:11:40

标签: angular firebase firebase-realtime-database angularfire2

我正在尝试更新Firebase数据库中的数组。这是Firebase用户集合。 我正在尝试创建一个组并更新用户/组集合中的ID。

"users" : {
    "F0m0l0JhIXMhlQmEMv5ci1MapLM2" : {
      "address" : "Address 123334",
      "displayName" : "Prashant 1",
      "email" : "fireapps@gmail.com",
      "groups" : [ "-KbzjEnTCGAto8SQbvzc", "-KbzjCLP3Aw2jfa0NmHO" ],
      "name" : "Prashant",
      "phone" : "9900XXXX190"
    }
  }

我想使用AngularFire2在groups数组中添加新密钥。如何更新阵列?

1 个答案:

答案 0 :(得分:0)

我想您使用的是angularefire2,因此更新groups节点将是

...
constructor(
  private af: AngularFire,
  ) {}
...
this.af.database.object('/users/F0m0l0JhIXMhlQmEMv5ci1MapLM2').update({
    "groups": "your new key" // <--------
  })
  .catch (error =>{
    console.log(error);
});

如果您想使用自己的密钥,请:

this.af.database.object('/users/F0m0l0JhIXMhlQmEMv5ci1MapLM2/groups').update({
  "0": "group 1 key",
  "1": "group 2 key",
  "custom key": "group x key"
}).catch(error => { console.log(error); });

如果您的数据位于名为updateArray的数组中,则使用此类数组更新groups节点。有点像

this.af.database.object('/users/F0m0l0JhIXMhlQmEMv5ci1MapLM2/groups').update(updateArray).catch(error =>{ console.log(error); });