具有 angular 绑定的 Firebase 连接计数?

Firebase connection count with angular bindings?

我已经阅读了很多关于 Firebase 连接的帖子(包括 firebase.com 网站)。该网站表示,一个连接相当于每月大约 1400 个访问用户。考虑到客户端快速连接到 Firebase 服务器,提取一些数据,然后关闭连接的情况,这对我来说很有意义。但是,如果我使用 angular 绑定(通过 angularfire),那么每次客户端访问(如果用户在网站上停留一段时间)不是一个连接吗?在此示例中,有 100 个用户(每个用户都使用 firebase angular 绑定)同时连接到站点将是 100 个连接。如果我选择不使用 angular 绑定,那么如果所有客户端都已经提出数据请求并且只是闲置,那么该数字可能(在理论上)为 0。

我理解正确吗?

AngularFire 构建在 Firebase 的常规 JavaScript/Web SDK 之上。它们之间的连接数基本相同:如果有 100 个用户同时使用您的应用程序,并且您正在为他们每个人同步数据,那么您此时将有 100 个并发连接。

一个并发连接相当于每月约 1400 次访问的说法是基于 Firebase 人员对平均连接持续时间的丰富经验。正如 Andrew Lee stated in this answer:大多数开发人员大大高估了他们将拥有的并发连接数。

如前所述:AngularFire 的基本行为与 Firebase 的 JavaScript API 相同(因为它构建于此之上)。两个库都为用户保持开放连接,以便它们可以同步连接用户之间发生的任何更改。您可以通过调用 goOffLine 手动断开此类连接,然后使用 goOnline 重新建立它。这是否是一个好方法在很大程度上取决于您正在构建的应用程序类型。

两个例子:

  • 最近有someone who was building a word game。他使用 Firebase 存储每场比赛的最终比分。在他的例子中,显式管理连接是有意义的,因为与应用程序处于活动状态的时间相比,连接只需要相对较短的时间。
  • 用于 Firebase 编程的 "hello world" 是 chat application。在这样的应用程序中,自己管理连接没有多大意义。因此,每 15 秒短暂连接一次,然后再次断开连接。如果你这样做,你实际上是在恢复轮询更新。这样做会让您失去使用 Firebase 的一大好处:它会自动将数据同步到连接的客户端。

因此只有您可以决定显式连接管理是否最适合您的应用程序。我建议先不使用它(它更简单),然后先在较小的范围内测试您的应用程序,看看实际使用情况如何符合您的预期。