firebase-database
Firebase-Echtzeit-Datenbank-Transaktionen
Suche…
Einführung
Transaktionen bieten einen Mechanismus zum Koordinieren zwischen mehreren Parteien, die möglicherweise gleichzeitig auf dieselben Daten zugreifen. Diese "Parteien" können verschiedene Instanzen desselben Codes sein, wie verschiedene Benutzer, die dieselbe Anwendung oder Knoten in einem Server-Cluster ausführen, Teile des gleichen Programms oder ereignisabhängige Programme wie eine Administrationsanwendung, eine "Endbenutzer" -Anwendung und / oder " Backend "Serverlogik.
Ein verteilter Zähler
Stellen Sie sich vor, viele Benutzer führen alle eine Webanwendung aus, die versucht, einen Zähler in der Datenbank zu erhöhen. Jeder Benutzer muss den aktuellen Zählerstand lesen, einen addieren und den aktualisierten Wert ausschreiben. Um sicherzustellen, dass niemand den Zähler liest, während ein anderer einen Zähler hinzufügt, verwenden wir eine Transaktion:
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
}
});