Angularfire2更新所有子节点

时间:2017-08-03 12:28:24

标签: firebase firebase-realtime-database angularfire2

在Firebase中,我有这个数据库

miodb

我想更新所有子节点(例如67-68的子节点),将键'status'设置为'read'。

所以这就是我获取物品清单的方式

this.listaquery = db.list('https://xxxxxxxx.firebaseio.com/chat/'+this.navParams .get('chatRoom'),{
          query: {
              orderByChild: 'id',
              equalTo: this.navParams .get('id2')
          }
        });
      }

我知道这是更新孩子的代码

this.listaquery.update('-KnFI98Lnm-BYXxR_zoY',{status:'read'});

但是,如果我想用一个命令更新所有孩子?

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案(我不知道它是否是最好的解决方案)

this.listaquery = db.list('https://delega-facile.firebaseio.com/chat/'+this.navParams .get('chatRoom'),{
  query: {
      orderByChild: 'id',
      equalTo: this.navParams .get('id1')
  },
  preserveSnapshot: true
});


this.listaquery
          .subscribe(snapshots => {
              snapshots.forEach(snapshot => {
                  this.listaquery.update(snapshot.key,{status :'read'});
                  /*
                  console.log(snapshot.key)
                  console.log(snapshot.val())
                  */
              });
          })