0
Firebaseデータベース:GoogleのFirebaseリアルタイムデータベースのsetValue IF(条件)
{
"balance" : 10
}
アプリケーション1(擬似コード):
if (balance-10 >= 0)
{
// Application freezes for a few seconds. (Connection/hardware issue or whatever reason)
balance -= 10;
}
アプリケーション2(擬似コード):
if (balance-10 >= 0)
{
// Application is executed without any problems.
balance -= 10;
}
両方のアプリケーションが同時に起動する場合、最後の "balance"値は "0"ではなく "-10"になります。この問題は容易であるMySQLでは
はによって固定:
UPDATE `table` SETバランス= IF(バランス-10> = 0、バランス-10、バランス)。
Firebaseにはどのような解決策がありますか?
をそれは完璧に動作し、私もリターン 'null'なので最初の' doTransation'呼び出し、との問題を抱えていたし、あなたの2番目のURLは私を助けました。ありがとう。 (JavaBTW) – Thiago