使用 AngularFire2 @angular/fire V5 在 Firebase 文档中增加一个值

Increment a value inside Firebase document using AngularFire2 @angular/fire V5

我在 Firebase 中有一个文档,其中包含一个我想要递增的值,但我在 Angularfire2 的文档中没有看到任何关于如何执行此操作的内容。

我尝试使用此答案 但失败了,因为我的 this.db 实例无法识别对象方法。

** 更新 **

通过执行以下操作,我能够在某种程度上让我的代码执行我想要的操作:

incrementChoice(choiceKey) {
    this.db.doc(choiceKey).valueChanges().subscribe((choice:any) => {
      this.db.doc(`choices/${choiceKey}`)
        .update({
          votes: ++choice.votes
        });
    })
  }

但是,问题是我现在陷入了递增的无限循环,因为每次值递增时,订阅都会启动并再次递增。我不知道如何获得选择票值?有人可以帮我重构这个,这样我就可以使用它的键只获得一个选择对象,而在更新投票值时不受订阅的约束吗?

我知道可以通过获取整个集合来获取对象,但对于我的用例,我不想依赖整个集合来获取对象和该对象的投票值。我已经有了对象 Key。

试一试:

this.afs.doc(`choices/${choice.key}`)
  .update({
    votes: ++choice.votes
  });

Here's a Working Sample StackBlitz for your ref.

能够让它与以下内容一起工作(感谢@SiddAjmera 帮助我走上正轨):

  incrementChoice(choiceKey) {
    const choiceDoc:any = this.db.collection('choices').doc(choiceKey);
    choiceDoc.ref.get().then(choice => {
      let votes = choice.data().votes
      choiceDoc.update({
        votes: ++votes
      });
    });