У меня есть документ в Firebase со значением, которое я хочу увеличить, но я не вижу ничего в документации для Angularfire2 о том, как это сделать.
Я пытался использовать этот ответ Создать или увеличить значение с помощью Angular2 / AngularFire2 , но не удалось, поскольку мой экземпляр this.db не распознает метод объекта.
** ОБНОВЛЕНИЕ **
Мне удалось немного заставить мой код делать то, что я хочу, выполнив следующее:
incrementChoice(choiceKey) {
this.db.doc(choiceKey).valueChanges().subscribe((choice:any) => {
this.db.doc(`choices/${choiceKey}`)
.update({
votes: ++choice.votes
});
})
}
Проблема, однако, в том, что я застрял в бесконечном цикле увеличения, потому что каждый раз, когда значение увеличивается, подписка срабатывает и увеличивается снова. Я не знаю, как еще получить значение голоса выбора? Может ли кто-нибудь помочь мне реорганизовать это так, чтобы я мог получить только один объект выбора, используя его ключ, и не быть привязанным к подписке, когда я обновляю значение голосов?
Я понимаю, что можно получить объект, извлекая всю коллекцию, но для моего случая использования я не хочу зависеть от всей коллекции, чтобы получить объект и значение голосования из этого объекта. У меня уже есть ключ объекта.