我有一個大型數據集(約100k條目),這是訂閱使用'child_added'事件。使用節點7和firebase 3.6.1,這樣做似乎在發起單個child_added事件之前下載整個100k條目。Child_added訂閱似乎下載整個數據集
內存消耗在幾十秒內顯着增長,然後所有child_added事件都會相繼發生。
這是慢:
require('firebase').
initializeApp({databaseURL: 'https://someproject.firebaseio.com'}).
database().ref('data').
on('child_added', (snap) => console.log(snap.key));
限制依然很快(幾秒鐘的延時):
require('firebase').
initializeApp({databaseURL: 'https://someproject.firebaseio.com'}).
database().ref('data').limitToFirst(10).
on('child_added', (snap) => console.log(snap.key));
鑑於火力地堡的流性質,我認爲它沒有打算行爲child_added訂閱在完成任何事情之前將整個數據集下載到客戶端。
我做錯了什麼,或者這是一個錯誤?
這並不能解釋爲什麼在觸發任何child_added事件之前先下載整個數據集。預期的行爲是在下載條目時或者至少以較小的批次查看這些事件。 我修改了代碼示例,謝謝你讓我知道。 – tjclement
好吧,我更新我的答案... – Anfuca
這與Firebase構建要做的事情(流式傳輸數據)有關,因此我很難接受這是真正意圖的行爲。 – tjclement