AngularFire更新数据而不拉动已存在的数据值?

时间:2017-12-10 21:51:16

标签: angularjs firebase firebase-realtime-database angularfire2

您是否可以通过在db中为已存在的数据添加数字来更新数据,或者提取初始数据然后添加数字是必须的?

我的意思是:

this.db.object('something').update({

  current:+1      // something like that current value is 0 in db.




  });

或者我必须像

一样写
 this.db.object('something').update({

      current:this.current+1     // i pulled current value before this is working of course




      });

1 个答案:

答案 0 :(得分:1)

使用DatabaseReference.transaction()方法根据当前值更新节点。 AngularFire2 / 5似乎无法包装此方法,但您可以直接从JavaScript SDK直接执行此操作:

var ref = firebase.database().ref('something');
ref.transaction(function(curent) {
  return (current || 0) + 1;
})

由于AngularFire构建于Firebase JavaScript SDK之上,因此该代码可以完美地与您现有的AngularFire代码进行交互。有关详细信息,请参阅documentation on transactions