【发布时间】:2017-03-04 13:59:46
【问题描述】:
我在doc 中搜索了许多论坛、问题,但找不到正确的解决方案。
问题
使用 angularfire2 增加值的最佳方法是什么?
我看到我们可以使用 [transaction()][] 但它实际上不适用于 angularfire2。
还是用快照?
user.service.ts
incrementLike(userToIncrementLike){
this.af.database.object('users/' + userToIncrementLike.uid).subscribe((userObject) => {
var newUser = {
likes: userObject.likes + 1
};
});
this.af.database.object('users/' + userToIncrementLike.uid).update(newUser);
}
我也试过这种方式:
incrementLike(userToIncrementLike){
let obs = this.af.database.object('users/' + userToIncrementLike.uid);
obs.subscribe((snapshot) => {
let newValue = (snapshot.$value) ? (snapshot.$value + 1) : 1;
obs.set(newValue);
});
}
非常感谢您的帮助和提示 :) 路易斯。
【问题讨论】:
-
您所描述的内容并不完全合理。喜欢的数量变为完全
1340或类似的东西?你的console.log会触发 1340 次吗? -
是的,所以我检查并修改了我的问题:它恰好增加了 1321 次,所以 1321...2642.. 在控制台中它也被调用了 1321 次。我也更新了可能的解决方案。 :)
-
好吧,我解决了我的问题 :D 还是谢谢你!
-
@luiswill 请提供您的解决方案作为单独的答案。 Stack Overflow 鼓励自我回答,并提供了一种建立声誉的好方法。
标签: angular firebase ionic2 angular2-services angularfire2