How to increment existing number field in Cloud Firestore
Firestore now has a specific operator for this called FieldValue.increment()
. By applying this operator to a field, the value of that field can be incremented (or decremented) as a single operation on the server.
From the Firebase documentation on incrementing a numeric value:
var washingtonRef = db.collection('cities').doc('DC');
// Atomically increment the population of the city by 50.
washingtonRef.update({
population: firebase.firestore.FieldValue.increment(50)
});
So this example increments the population by 50, no matter what is current value is. If the field doesn't exist yet (or is not a number), it is set to 50
in this case.
If you want to decrement a number, pass a negative value to the increment
function. For example: firebase.firestore.FieldValue.increment(-50)