CristalT
6/13/2019 - 2:49 AM

Firestore: transacciones

Ejemplo de cómo buscar la numeración del próximo cliente y crearlo en la Firestore.

const data = this.cliente

const counterRef = this.$firestore.collection('contadores').doc('clientes_motos')
const clientesRef = this.$firestore.collection('clientes/motos/activos')

return this.$firestore.runTransaction(transaction => {
    return transaction.get(counterRef).then(counterDoc => {
      if (!counterDoc.exists) {
        throw new Error('No se encontró el contador de clientes')
      }
      const next = counterDoc.data().numero + 1
      return clientesRef
        .doc(next.toString())
        .set(data)
        .then(() => {
          return transaction.update(counterRef, { numero: next })
        })
    })
  }).then(() => {
    // hacer algo al finalizar la transaccion
  })