2017-06-09 19 views

回答

3

計數器可以成長向上或向下,這意味着用戶可以在櫃檯上點擊來增加價值,但如果他再次點擊也可以減小該值。當我們使用事務,我們不僅用它來增加或減少一個計數器,我們使用,如果知道,在我們的應用程序是一種可能性,即兩個用戶可以在相同的時間相同的動作。如果我們不使用交易,如果兩個用戶在同一時間採取行動,則可以僅將該計數器增加/減少一次,而不是兩次。

如果我們使用事務,兩個動作都會發生在不同的執行線程中,所以沒有辦法讓計數器只能增加/減少一次,即使兩個用戶在同一時間採取相同的動作。

作爲結論,每當您認爲兩個或多個用戶可同時在Firebase數據庫中更改相同值的可能性時使用事務。

希望它有幫助。

+0

謝謝,但我講一個計數器,它永遠不會減少,所以只能上去。 –

+1

只要增加或減少就無所謂了。如果只有一個用戶使用該計數器,則不需要交易。如果兩個或更多用戶可以在同一時間使用同一臺計數器,則需要事務處理以避免錯誤。 –

+1

@ErikHellberg它的數據不是如何變化本身,而是它改變相對於前值。由於檢查值並設置新值是獨立操作,因此您需要一個事務來確保它不會在此期間更改爲其他值。 –