firebase-database
Transactions de base de données en temps réel Firebase
Recherche…
Introduction
Les transactions fournissent un mécanisme de coordination entre plusieurs parties pouvant accéder simultanément aux mêmes données. Ces "parties" peuvent être différentes instances du même code comme différents utilisateurs exécutant la même application ou des nœuds dans un cluster de serveurs, des parties du même programme ou des programmes différents comme une application d'administration, une application "utilisateur final" et / ou " backend "logique du serveur.
Un compteur distribué
Imaginez que de nombreux utilisateurs exécutent tous une application Web qui tente d’incrémenter un compteur dans la base de données. Chaque utilisateur doit lire le compte actuel, en ajouter un et écrire la valeur mise à jour. Pour vous assurer que personne ne lit le compteur pendant que quelqu'un en ajoute un, nous utilisons une transaction:
ref.transaction(function(value){
if (value === null) {
// the counter doesn't exist yet, start at one
return 1;
} else if (typeof value === 'number') {
// increment - the normal case
return value + 1;
} else {
// we can't increment non-numeric values
console.log('The counter has a non-numeric value: ' + value)
// letting the callback return undefined cancels the transaction
}
});