Firebase Datenbank:Google Firebase Realtime-Datenbank setValue IF (Bedingung)
{
"balance" : 10
}
Anwendung 1 (Pseudo-Code):
if (balance-10 >= 0)
{
// Application freezes for a few seconds. (Connection/hardware issue or whatever reason)
balance -= 10;
}
Anwendung 2 (Pseudo-Code):
if (balance-10 >= 0)
{
// Application is executed without any problems.
balance -= 10;
}
Wenn beide Anwendungen gleichzeitig starten, ist der endgültige "Balance" -Wert "-10" anstelle von "0".
In MySQL dieses Problem einfach ist, festgelegt durch:
UPDATE `table` SET Balance = IF (Balance-10> = 0, Balance-10, Gleichgewicht);
Was sind die möglichen Lösungen für Firebase?
Es funktioniert perfekt, ich hatte auch ein Problem mit dem ersten 'doTransation' Aufruf, die Rückkehr' null' und Deine 2. URL hat mir geholfen. Vielen Dank. (Java übrigens) – Thiago