Si vous avez utilisé la base de données Firebase, écriture complètement unique des endroits séparés atomiquement n'a pas été possible, c'est pourquoi vous devez utiliser lots écrit, ce qui signifie que soit réussir toutes les opérations, ou aucun d'entre eux sont appliqués.
En ce qui concerne Firestore, toutes les opérations sont maintenant atomiquement. Cependant, vous pouvez exécuter plusieurs opérations d'écriture en un seul lot contenant toute combinaison d'opérations set(), update() ou delete(). Un lot d'écritures se termine atomiquement et peut écrire dans plusieurs documents.
Cet un exemple simple en ce qui concerne une opération de traitement par lots pour l'écriture, la mise à jour et suppression.
WriteBatch batch = db.batch();
DocumentReference johnRef = db.collection("users").document("John");
batch.set(johnRef, new User());
DocumentReference maryRef = db.collection("users").document("Mary");
batch.update(maryRef, "Anna", 20); //Update name and age
DocumentReference alexRef = db.collection("users").document("Alex");
batch.delete(alexRef);
batch.commit().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// ...
}
});
Appel de la méthode commit()
sur l'objet lot signifie que vous vous engagez le lot entier.
Les documents liés à vous a un exemple pour les écritures par lots. –
Je comprends comment utiliser une écriture par lots. Je demande comment effectuer une mise à jour pour chaque document d'une collection. –