firebase-database
Transacciones de base de datos en tiempo real de Firebase
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
}
});