Sök…


Introduktion

Transaktioner ger en mekanism för att samordna mellan flera parter som kan komma åt samma data samtidigt. Dessa "parter" kan vara olika instanser av samma kod som olika användare som kör samma applikation eller noder i ett serverkluster, delar av samma program eller händelse olika program som en administrationsapplikation, en "slutanvändar" -applikation och / eller " backend "serverlogik.

En distribuerad räknare

Föreställ dig att många användare som alla kör en webbapplikation som försöker öka en räknare i databasen. Varje användare måste läsa det aktuella antalet, lägga till ett och skriva ut det uppdaterade värdet. För att se till att ingen läser räknaren medan någon annan lägger till en använder vi en 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
  }
});


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow