Javascript 增量计数器firestore vue
我的firebase中有一个属性,在添加注册时需要增加该属性。添加注册是有效的,但我似乎不知道如何在注册发生时动态地增加数量。 我的初始代码是:Javascript 增量计数器firestore vue,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我的firebase中有一个属性,在添加注册时需要增加该属性。添加注册是有效的,但我似乎不知道如何在注册发生时动态地增加数量。 我的初始代码是: countExperience() { db .collection("experiences") .doc(this.$route.params.experience_id) .update({ quantity: + 1 }) .then(docRef => { console.log("add
countExperience() {
db
.collection("experiences")
.doc(this.$route.params.experience_id)
.update({ quantity: + 1 })
.then(docRef => {
console.log("added quantity");
});
},
我的问题是“更新”不起作用,它基本上是将值设置为1,而不是递增
这是工作代码:
countExperience() {
const exp_ref = db.collection("experiences").doc(this.$route.params.experience_id)
return db.runTransaction(t => {
return t.get(exp_ref).then(doc => {
const newCount = doc.data().quantity +1
t.update(exp_ref, {quantity: newCount})
})
})
},
您需要从文档中读取
quantity
的值,将其递增,然后将其写回。您现在拥有的只是在文档中写入值,而没有先读取它
您通常会希望这样做,以便以事务的方式进行所有操作。我确实尝试过这样做,但当时可能写得不对这是我尝试遵循的示例: