多个用户的 Firebase REST 流

Firebase REST streaming for multiple users

我有一个服务器需要为多个用户接收来自 Firebase 的实时更新,其中每个用户都向我的应用授予 Oauth 访问他的 Firebase 数据的权限。

我的服务器是使用 Firebase REST Streaming 实现的,基于服务器发送的事件。

我想知道是否有办法将与多个用户有关的 Firebase 数据多路传输到一个流中。

我希望能够使用与多个用户相关的 Oauth 令牌设置流,并随后在同一流上接收与多个用户相关的实时更新。

否则,我似乎需要为每个 Oauth 令牌维护一个单独的流,这似乎是不可扩展的。

我认为 Twitter 有一个 Site Streams 功能,就像我在他们的 API 中寻找的一样,通过一个信封实现,表明消息的​​目标用户。

Firebase 是否支持类似的东西?

单个 Firebase REST 调用只会监控单个节点。例如

curl 'https://samplechat.firebaseio-demo.com/users/jack/name.json'

您可以使用 orderBystartAt,endAtandlimitTo...` 参数控制从该节点下 returned 的数据。例如

curl 'https://samplechat.firebaseio-demo.com/users/.json?orderBy="name"&startAt="Jack"'

无法从不同 nodes/nodesets 获取单个 REST 请求 return 数据。因此,除非你找到一种方法来在单个节点下收集你想要 return 的所有数据,在那里它可以通过一组查询参数(orderBy 等)returned,你将必须执行多个 REST 请求才能获取您的数据。

请注意,Firebase 内部提供的 SDK 使用网络套接字协议,因此不受此限制的影响。如果有适用于您的服务器端语言的 SDK(例如 node.js、Java),您可以使用那个来解决它。