Счетчик приращений - PullRequest
       4

Счетчик приращений

0 голосов
/ 04 июня 2018

В моей базе данных есть атрибут, который нужно увеличивать при добавлении регистрации.Добавление регистрации работает, но я не могу понять, как я могу динамически увеличивать количество, когда происходит регистрация.Мой исходный код для этого:

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})
    })
  })
},

1 Ответ

0 голосов
/ 04 июня 2018

Вам нужно прочитать значение quantity из документа, увеличить его, а затем записать обратно.То, что вы сейчас имеете, просто записывает значение в документ, не читая его сначала.

Как правило, вам нужно использовать транзакцию , чтобы все это происходило в транзакции.способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...