【问题标题】:Firebase database several updates of the same value at the same timeFirebase 数据库同时多次更新相同的值
【发布时间】:2020-06-06 11:03:12
【问题描述】:

实时数据库中有一定的int值。我使用两个不同的 Firebase 函数对其进行了修改。假设现在它是 500,并且这两个函数都已被调用。一个应该添加 100 到值,另一个 - 20。我在每个函数中从数据库中获取当前值(500)并将相应的值添加到其中,然后将新值写入数据库。如果我理解正确,那么我将丢失其中一个值,并且在数据库中我将​​拥有上次记录的值(600520)。如何避免这种情况?

【问题讨论】:

    标签: firebase-realtime-database google-cloud-functions


    【解决方案1】:

    您所描述的内容要求您使用事务,或最近添加的increment() 操作。

    在 Cloud Functions 中,您将使用 Firebase Admin SDK for Node,这可以很简单:

    ref.set(firebase.database.ServerValue.increment(100));
    

    ref.set(firebase.database.ServerValue.increment(-20));
    

    另请参阅比较两种操作的性能的答案:How quickly can you atomically increment a value on the Firebase Realtime Database?

    【讨论】:

      猜你喜欢
      • 2023-01-30
      • 2021-09-26
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多