2016-08-03 67 views
0

我的應用程序需要一個監控服務,我在Heroku上託管,該服務根據用戶帳戶的更改監控,更正和修改數據。但是,用戶帳戶中有一些字段以更快的速度更新,並且所有這些帳戶都會向我的監控服務發送數據,這些字段的效率非常低。如果某個字段被修改,請勿觸發'child_changed'

在偵聽child_changed時是否可以忽略字段,以便回調沒有被觸發並且數據永遠不會被下載?根據用戶的速度,我可能會在監視應用程序中每秒下載數百個帳戶,這隻會在火焰中消失。

這裏是什麼,我正在尋找一個例子:

{ 
    name: 'Jimmy', 
    birthday: 'Mar 23, 1976', 
    biography: 'Random text', 
    interests: { 
     // ... 
    } 
} 

也許我想忽略biography領域,爲此該child_added功能應該下載只有在下列值之一改變新的帳戶信息:

  • brithdate
  • 利益

如果biography字段發生變化,數據應該被忽略並且不會下載,因爲它不是與我的顯示器相關的字段,而只是浪費帶寬。

回答

1

Firebase始終同步完整節點。如果您只想同步節點列表中每個節點的子集,則應該將該子集分成它自己的頂級節點。

profiles: { 
    uidJimmy: { 
    name: 'Jimmy', 
    birthday: 'Mar 23, 1976', 
    biography: 'Random text', 
    } 
}, 
interests: { 
    uidJimmy: { 
     // ... 
    } 
} 

你會發現這是一個常見的使用火力地堡(或其他大多數NoSQL數據庫),當這些:你的數據,你的應用程序要消耗的方式進行建模。我強烈建議閱讀NoSQL data modeling這篇文章。

+0

這就是我們一直在做的,我只是想知道是否有一種方法來規範化數據。謝謝。 – Hobbyist

相關問題