2015-02-04 163 views
4

我們正在開發一款移動應用(目前爲Android和iOS),我們正在使用Firebase進行聊天和其他實時消息。Firebase多個兒童聽衆

我們正在使用的結構是:

firebase-url/user-id/ 
       contacts/child-element 
       activities/ 
          joined/child-element 
          created/child-element 
       notifications/child-element 

爲了保持我的應用程序的數據來更新我執行查詢並(在活動的情況下,或第二)附加一個孩子監聽到每個第一級子用戶ID分支(聯繫人,加入,創建,通知)。功能方面,它可以很好地工作,並且可以很容易地保持一切都是最新的,但是今天有一個小時的用戶測試,並且電池消耗非常大(對於一個用戶,該應用使用約26%的電池,其次使用的是) GC收集器運行頻率很高,我的感覺是,火力點連接可能是最大的用戶。它是否正確?只有在用戶標識分支上有一個子監聽器可能會更好?

任何幫助,將不勝感激。如果需要,我會發布一些Android代碼。

PS:這是Android版本的應用程序。

+0

我無法回答這個問題,因爲我真的不知道肯定。但是從我的研究來看,Firebase聽衆相對便宜。我會考慮在'user-id'引用上放置一個'ChildEventListener',並從那裏測試你的用法。我想知道你發現了什麼,因爲我目前正在開發一個主要由firebase驅動的應用程序。 –

回答

5

[Firebase工程師]一般來說,Firebase聽衆本身的價格非常低廉。您可能會發現瓶頸是通過電線傳輸的數據量。

在您上述的情況下,這聽起來像您要附加一個監聽器/aa/ba/b/c,這不會導致重複數據通過線路,因爲所有的嵌套的數據已經被捕獲的聽衆/a。 Firebase客戶端很聰明,不會複製這些數據。

至於電池,有很多因素可供參考,但可以嘗試分析快速變化的數據,緩慢變化的數據,更多的寫入,更少的寫入,更多/更少的UI或CPU等之間的不同行爲組合。這可能是一些因素的組合,但額外的調試將幫助你縮小罪魁禍首。

+1

聽衆人數與電池壽命之間是否存在任何直接關係,忽略數據傳輸量? –