【问题标题】:Firebase Function for Rolling Counter滚动计数器的 Firebase 功能
【发布时间】:2020-08-01 21:13:13
【问题描述】:

我的 Flutter 应用需要一个滚动计数器(1、2、3、...、98、99、1、2、3...)。鉴于可能有多个 Flutter 应用程序请求和递增 Rolling Counter,我认为使用 Cloud Function 管理计数器是有意义的(我通常使用 TypeScript )。 (请注意,如果有帮助,我也在使用 Cloud FirestoreRealtime Firebase。)

我可以轻松创建一个 Google Cloud 函数,它使用 FieldValue.increment 之类的东西来增加计数器。我担心的是以原子方式获取值,然后以一种并发不会产生问题的方式递增它。限制文档读/写成本的策略也可能很有吸引力。

什么是好的策略?

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    我认为您正在寻找的是 firestore 事务,这将确保数据以原子方式正确更新。如果文档被另一个客户端修改,事务将尝试重新运行“有限次”。

    在此处查看有关交易的文档: https://firebase.google.com/docs/firestore/manage-data/transactions

    您可以在客户端或云功能中使用事务,具体取决于最适合您的需求。如果您只是增加值,那么客户端功能应该可以很好地工作,假设您可以使用必要的安全规则正确保护 Firestore 数据库。

    【讨论】:

    • 感谢您的澄清。当我点击提交时,我实际上是这么想的,但我非常感谢第二种意见。
    猜你喜欢
    • 2018-09-08
    • 2018-06-10
    • 1970-01-01
    • 2020-12-07
    • 2020-09-09
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多