【发布时间】:2019-03-22 17:21:10
【问题描述】:
我在 Firebase 中有一个文档,其中包含我想要增加的值,但我在 Angularfire2 的文档中没有看到有关如何执行此操作的任何内容。
我尝试使用这个答案Create or increment a value with Angular2/AngularFire2 但失败了,因为我的 this.db 实例无法识别对象方法。
** 更新 **
通过执行以下操作,我能够在一定程度上让我的代码执行我想做的事情:
incrementChoice(choiceKey) {
this.db.doc(choiceKey).valueChanges().subscribe((choice:any) => {
this.db.doc(`choices/${choiceKey}`)
.update({
votes: ++choice.votes
});
})
}
然而,问题是我现在陷入了一个无限的递增循环,因为每次值递增时,订阅都会启动并再次递增。我不知道如何获得选择投票值?有人可以帮我重构这个,以便我可以使用它的键获得一个选择对象,并且在我更新投票值时不受订阅的限制?
我知道可以通过获取整个集合来获取对象,但对于我的用例,我不想依赖整个集合来获取对象并从该对象中获得投票值。我已经有了对象 Key。
【问题讨论】:
标签: angular firebase angularfire2