Batch Operations
Last updated
Last updated
Batch operations in Firestore is a very useful feature to avoid inconsistencies on your data base. Basically, what they do is they set a bunch of operations to be executed, but try to do them all at once and, if any of them fails, none will be completed.
For instance, suppose we want to edit 3 documents that are related to each other in some way. Let's say a Charge document to be set as "paid", and the User balance to be incremented by 100. If I to the update on the Charge and the update on the User fails, there will be an inconsistency. The Charge will be computed as paid, but the User won't have received it new balance.
With batch operation we would create a new batch with the ID "process charge" and add 2 update operations to it:
Update the status of a Charge to "paid".
Update the balance of the User in 100.
We do that by using a action. Then we run a to try and do the 2 operations together. If either fails, none will be completed, maintaining consistency on the database.