首页 文章

我应该使用firebase Cloud 功能吗?

提问于
浏览
0

我目前正在使用firebase实时数据库制作一个费用管理器应用程序 . 我在firebase上的数据如下所示:

{ Txns:[{s:"x", amount:1000 }
        {x:"x",  amount:2121 }
        ...
       ]
  Balance: {total:2000(sum of all amounts in txns array)}

}

现在,我想在json数组中添加所有金额并将其存储在“balance:”中 . 那么,我应该使用谷歌 Cloud 功能,或者我应该在客户端设备上进行计算?我知道谷歌 Cloud 功能是一种聪明的方法但是,每次用户输入json对象都会被添加到数组中,谷歌 Cloud 功能将在每一个条目上运行更新余额,谷歌提供一些有限的读取和写入他们的免费计划 . 那么,我是否应该担心读写操作计数?

1 回答

  • 0

    Firebase实时数据库pricing不基于读取或写入操作的数量 . 它主要基于存储和下载的数据大小 . 随着交易数量的增加,只读取余额,而不是阅读所有交易,将很快变得更便宜 .

    可以从写入事务的每个客户端更新余额 . 在这种情况下,您需要使用事务进行这些更新,或者(最好)在更新被拒绝时实现您自己的客户端重试逻辑 . 虽然这绝对是可能的,但它可能会非常麻烦 . 我建议您在这里阅读我的答案,以获取如何入门的示例:Is the way the Firebase database quickstart handles counts secure?

    或者,您可以创建一个受信任的环境,例如您控制的服务器或 Cloud 功能,负责更新余额 . 这样做的一个优点是您不必再担心安全规则了 . 但缺点是,这仅在您的客户端连接到服务器时才有效,其中客户端 balancer 更新的方法可以透明地工作,而客户端在线时(至少在大多数情况下) .

相关问题