您是否可以通过在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
});
答案 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。