Buscar..


Introducción

Las transacciones proporcionan un mecanismo para coordinar entre varias partes que podrían tener acceso a los mismos datos al mismo tiempo. Estas "partes" pueden ser diferentes instancias del mismo código como diferentes usuarios que ejecutan la misma aplicación o nodos en un clúster de servidores, partes del mismo programa o eventos diferentes programas como una aplicación de administración, una aplicación de "usuario final" y / o " backend "lógica del servidor.

Un contador distribuido

Imagine a muchos usuarios que ejecutan una aplicación web que intenta incrementar un contador en la base de datos. Cada usuario debe leer el conteo actual, agregar uno y escribir el valor actualizado. Para asegurarnos de que nadie lea el contador mientras alguien más está agregando uno, utilizamos una transacción:

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow