2015-05-26 29 views
0

我有一臺服務器需要從Firebase接收實時更新,針對多個用戶,其中每個用戶都將Oauth訪問權限授予他的Firebase數據到我的應用。針對多個用戶的Firebase REST流

我的服務器使用Firebase REST Streaming基於服務器發送的活動來實現。

我需要知道,如果有復屬於多個用戶單流火力地堡數據的方式。

我希望能夠建立流與OAuth憑證屬於多個用戶,並隨後接收有關的多個用戶在同一數據流的實時更新。

否則,看來我需要保持每Oauth權杖,這似乎是不可擴展的一個獨立的流。

我認爲Twitter的有Site Streams功能像什麼,我自己的API中尋找,通過指示消息針對性給用戶一個信封來實現。

Firebase是否支持類似的東西?

回答

2

單個Firebase REST調用將僅監視單個節點。例如。

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

您可以控制哪些數據是從節點下返回與orderBystartAt, ENDAT and limitTo ...`參數。例如。

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

沒有辦法讓一個REST請求返回來自不同節點/節點集的數據。所以除非你找到一種方法來收集你想要在單個節點下返回的所有數據,它可以由一組查詢參數(orderBy等)返回,你將不得不執行多個REST請求來獲取你的數據。

注意,火力地堡提供的SDK內部使用一個網絡套接字協議,所以不受此限制的影響。如果SDK可用於您的服務器端語言(例如node.js,Java),則可以使用該語言來解決該問題。

+1

謝謝。我開始在我的服務器中使用node.js SDK。但是,在那裏我遇到了[鏈接]中描述的限制(http://stackoverflow.com/questions/28242306/how-to-use-firebase-client-to-connect-to-nest-api-using-multiple -client-connecti)。在那裏描述的解決方案(使用未公開的第二個參數給Firebase構造函數,指示實例建立並維護新的TCP連接,而不是共享常見的連接),但是我在找什麼是共享TCP連接,而不是爲每個用戶創建一個新連接。可以這樣做嗎? –

+2

* [免責聲明:我爲Firebase工作] * Firebase服務器當前需要爲每個上下文/令牌單獨連接。客戶端無法改變這一點。可能有一個庫用於多重連接,但*最終必須爲每個上下文保留一個套接字。如果它不能很好地滿足客戶端需求,那麼您就必須考慮另一種方法。 –

+1

因此,這似乎意味着,例如,基於Firebase的Works With Nest API本質上是不可擴展的。我的意思是,如果我的應用服務100萬Oauth'd Nest訂戶,那麼我的服務器需要與Firebase保持100萬個連接。我錯過了什麼嗎?如果是這種情況,那麼我不明白爲什麼Nest基於Firebase的API。 Firebase是否有計劃解決這個問題,並提供某種多路複用連接?我會假設任何與Firebase集成的服務器端應用程序都會遇到此限制。 –