何时使用Firebase事务

何时使用Firebase事务,firebase,web,transactions,firebase-realtime-database,atomicity,Firebase,Web,Transactions,Firebase Realtime Database,Atomicity,如果值仅增加,是否有必要使用该技术?。在示例Firebase文档中,starCount可以上升或下降,因此使用事务处理技术是合乎逻辑的。但是如果价值只是增加,我想交易技术是不需要的,对吗?或 多个用户同时向右增加一个值。计数器可以增大或减小,这意味着用户可以单击计数器增加值,但如果再次单击,也可以减小值。当我们使用交易时,我们不仅仅使用增加或减少计数器,我们使用的是如果知道在我们的应用程序中,两个用户可以在同一时间进行相同操作的可能性。如果我们不使用事务,如果两个用户同时执行操作,计数器只能增加

如果值仅增加,是否有必要使用该技术?。在示例Firebase文档中,
starCount
可以上升或下降,因此使用事务处理技术是合乎逻辑的。但是如果价值只是增加,我想交易技术是不需要的,对吗?或
多个用户同时向右增加一个值。

计数器可以增大或减小,这意味着用户可以单击计数器增加值,但如果再次单击,也可以减小值。当我们使用交易时,我们不仅仅使用增加或减少计数器,我们使用的是如果知道在我们的应用程序中,两个用户可以在同一时间进行相同操作的可能性。如果我们不使用事务,如果两个用户同时执行操作,计数器只能增加/减少一次,而不是两次

如果我们使用事务,这两个操作将在不同的执行线程中进行,因此计数器不能只增加/减少一次,即使两个用户在同一时间执行相同的操作

总之,每当您认为两个或多个用户可以同时更改Firebase数据库中的相同值时,请使用事务


希望有帮助。

计数器可以增大或减小,这意味着用户可以单击计数器增加值,但如果再次单击,也可以减小值。当我们使用交易时,我们不仅仅使用增加或减少计数器,我们使用的是如果知道在我们的应用程序中,两个用户可以在同一时间进行相同操作的可能性。如果我们不使用事务,如果两个用户同时执行操作,计数器只能增加/减少一次,而不是两次

如果我们使用事务,这两个操作将在不同的执行线程中进行,因此计数器不能只增加/减少一次,即使两个用户在同一时间执行相同的操作

总之,每当您认为两个或多个用户可以同时更改Firebase数据库中的相同值时,请使用事务


希望有帮助。

谢谢,但我说的计数器永远不会减少,它只能上升。不管是增加还是减少。如果只有一个用户使用该计数器,则您不需要事务处理。如果两个或多个用户可以在同一时间使用同一计数器,则您需要进行事务处理以避免错误。@ErikHellberg问题不在于数据本身如何变化,而在于它相对于上一个值的变化。由于检查值和设置新值是独立的操作,因此您需要一个事务来确保它不会在过渡期间更改为其他内容。我现在理解了,谢谢。在增加它之前,我必须拉动它并检查电流值是多少,然后是+1。当然,需要进行交易。Firebase需要一些时间来适应:)谢谢,但我说的是一个永远不会减少的计数器,它只能上升。不管是增加还是减少。如果只有一个用户使用该计数器,则您不需要事务处理。如果两个或多个用户可以在同一时间使用同一计数器,则您需要进行事务处理以避免错误。@ErikHellberg问题不在于数据本身如何变化,而在于它相对于上一个值的变化。由于检查值和设置新值是独立的操作,因此您需要一个事务来确保它不会在过渡期间更改为其他内容。我现在理解了,谢谢。在增加它之前,我必须拉动它并检查电流值是多少,然后是+1。当然,需要进行交易。Firebase需要一些时间来适应:)