【问题标题】:Firebase using on() listener to understand user statusFirebase 使用 on() 监听器了解用户状态
【发布时间】:2016-04-07 20:35:15
【问题描述】:

我们将 Firebase 用于移动应用。我们有成千上万的用户。

预计达到 10 万。

我们有一个门户来配置要向用户显示的数据。

根据用户输入,我们需要处理大量数据。

目前,我们正在为每个拥有 on() 监听器的用户使用一个标志。所以我们将有成千上万的听众。

这些侦听器由 Heroku 上托管的 Node JS 服务器处理。

之前我们使用 Parse,并且我们使用 Parse 云代码在云代码调用上操作 Parse Core DB。

但在 Firebase 中,我们最终需要创建一个 REST API 来为我们完成这项工作,而不是为 10 万用户提供 10 万个侦听器。

但是我们需要在 APP 端重写网络代码以进行 rest API 调用,该调用目前由 Firebase 库处理,我们在 fir 中使用 Firebase 来处理该调用

【问题讨论】:

  • 问题是什么?
  • 是每个用户对 on() 监听器的使用,它可能高达 10 万,即 10 万个监听器,以正确的方式来处理为一个用户操作修改 firebase 数据的要求?

标签: node.js heroku parse-platform firebase


【解决方案1】:

每个 Firebase 侦听器都是一个单独的 websocket 连接,我不确定在单个 node.js Heroku dyno 上创建数十万个连接有多容易(尽管请参阅 here 类似的东西是显然是在适当配置的 15GB 机架空间云服务器上实现的)。

如果您计划在多个 Heroku dyno 上运行 Firebase 侦听器,您将需要一种将侦听器分布到不同 dyno 实例的方法。

【讨论】:

  • 谢谢你。除了 on() 侦听器方法之外,关于在 Firebase DB 的后端运行操作的任何建议?我们之前使用 Parse Cloud 代码来实现这一点,这非常容易。看起来现在我们需要使用 Node Js 创建一个 REST API,移动用户将通过更改 Flag 来调用它来触发侦听器。
  • 您可以考虑使用 Firebase RESTful 流式传输 (firebase.com/docs/rest/api/#section-streaming) 而不是 on() 侦听器。根据您的 Firebase 的结构,这可能会或可能不会更有效。但是请注意,每个 EventSource 都是一个单独的连接 - 请参阅 stackoverflow.com/questions/30451991/…
猜你喜欢
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 1970-01-01
  • 2021-06-16
  • 2017-12-02
  • 1970-01-01
  • 2012-03-15
相关资源
最近更新 更多