【问题标题】:Firebase Cloud Functions HTTP-Req-Res vs Realtime Database for REST APIFirebase Cloud Functions HTTP-Req-Res 与 REST API 的实时数据库
【发布时间】:2020-10-14 10:10:54
【问题描述】:

我正在为 Firebase 实时数据库上的应用设计一个 REST API。从成本和效率的角度来看,我想知道这两种选择中哪一种更适合我:

  1. 客户端将请求直接写入我的数据库,云函数的 onWrite 被触发并在客户端读取的适当节点上写入响应。

  2. 客户端发送带有请求的 HTTP 请求,Firebase Cloud Functions 的 HTTP 触发器将适当的响应发送回客户端。

我预计每月会收到大约 300 000 个 API 请求。

【问题讨论】:

  • 你说你担心成本。您估计每月收到多少请求?
  • 多个,但我想比较单个 api 请求之间的成本。无论是通过方法1还是2。
  • 音量会很大。但是成本分析不依赖于此,对吧?它应该更多地取决于每个功能触发器的功效。
  • 您必须确定哪个最适合您的特定用例。如果没有更多细节,就不可能对哪个更好做出简单的判断。我在这篇文章中深入探讨了这个问题(使用 Firestore 而不是 RTDB):medium.com/firebase-developers/…
  • 谢谢道格!我去查一下。

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


【解决方案1】:

费用

很难知道哪个更好,因为这取决于您的具体用途。您可以尝试使用 firebase 计算器 https://firebase.google.com/pricing#blaze-calculator 进行计算,但从简单的 POV 来看,选项 2 似乎更好,因为在这两个选项中,云函数执行相同数量的调用,而在第一个选项中,您还必须为 DB 付费

效率

从理论上讲,选项 2 似乎会更有效,因为它为每个事务使用的组件更少,而在这两个选项中,云功能的工作量将相对相同。实际上,只有经过测试才能知道。

一般情况

选项 2 似乎是正确的方法。在此选项中,您以创建者为其设计的正确方式使用 firebase。在选项 1 中,您以非平凡的方式使用 firebase,这可能会导致一些错误,并可能导致您的系统更加复杂。在大多数情况下,简单会获胜。特别是如果不止一个程序员会在这个系统上工作。

【讨论】:

  • 不一定正确。 Firebase 似乎在这两者之间没有太大区别:firebase.google.com/docs/reference/rest/database。准确地说:“API 用法您可以使用任何 Firebase 数据库 URL 作为 REST 端点。您需要做的就是将 .json 附加到 URL 的末尾,并从您最喜欢的 HTTPS 客户端发送请求。”
猜你喜欢
  • 2019-10-03
  • 2020-08-06
  • 2017-10-10
  • 2019-09-25
  • 2019-08-07
  • 2018-06-09
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多