【问题标题】:Firebase Realtime Database Listeners PricingFirebase 实时数据库侦听器定价
【发布时间】:2021-06-24 22:28:05
【问题描述】:

我对 Firebase 实时数据库侦听器的定价有疑问。我正计划使用 RTDB 创建一个聊天室,我对定价模型很好奇。

在消息组上创建侦听器并添加新项目时,RTDB 是返回所有消息还是仅返回侦听器的更改。我是否会因再次下载所有数据而被收费,或者仅因侦听器下载修改后的数据而收费。

平台是网络。可能会有数百万条消息,我想确保我可以控制每个用户下载的消息量。

结构如下:

【问题讨论】:

  • 这里很大程度上取决于您如何实现侦听器、您的数据模型以及您的客户端运行的平台。在不了解更多细节的情况下,很难说您的定价将如何实现。
  • 我还建议考虑用户实际需要哪些数据。虽然可能有数百万条消息,但用户真的会阅读所有消息吗?我通常建议考虑全屏数据;所以从 10-20 条消息开始,然后根据需要加载其余消息。
  • 感谢您的建议。我上传了一张我的数据库格式的图片。这实际上回答了我的第二个问题。至于第一个,假设我在“消息”组上设置了一个监听器并添加了一个新项目,我是为整个消息组付费还是只为监听器上传的数据付费?
  • 您的客户在什么平台上运行?另外:请使用所有答案来澄清您的原始问题,因为它目前的形式过于宽泛 - 人们不应该阅读评论线索来获得清晰。
  • 我现在更新了原来的问题。它将在网络上。

标签: firebase firebase-realtime-database


【解决方案1】:

在网络上,Firebase 客户端会读取所有符合您条件的节点。

因此,如果您将侦听器附加到/messages,它将读取所有消息。

如果您通过查询限制结果(例如,最近的 20 条消息),它将仅从服务器读取符合这些条件的节点。

通过游标操作(如startAt/startAfter),您可以实现按需加载,仅下载用户可能看到的数据,并限制您读取的数据量,从而付费。

【讨论】:

  • 谢谢。如果在创建侦听器后更新数据会发生什么。对所有消息收费还是仅对更改收费?
  • 我刚刚在 jsbin (jsbin.com/tixunah/edit?js,console) 中快速测试了这个。当我对其中一个子值进行更改时,它只接收 that 子值。请注意,您只能在浏览器开发者控制台的“网络”选项卡中看到这一点(检查 Web Socket 流量),因为 SDK 会将更新与它拥有的现有数据合并,并将数据的完整快照发送到我们的代码。
  • 啊有趣。很好,它降低了成本。肯定会用这个。谢谢弗兰克!
猜你喜欢
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2022-01-13
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多