「child_added」イベントを使用してサブスクライブしている大きなデータセット(〜100,000エントリ)があります。ノード7とfirebase 3.6.1を使用して、これを実行すると、child_addedイベントが1つ発生する前に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));
はFirebaseのストリーミングの性質を考えると、私はそれがchild_addedサブスクリプションのための行動を意図していないと仮定何かが行われる前に、データセット全体をクライアントにダウンロードしてください。
私は何か間違っているのですか、これはバグですか?
これは、child_addedイベントが発生する前に、データセット全体が最初にダウンロードされる理由を説明していません。予想される動作は、エントリがダウンロードされているか、少なくとも小規模なバッチでそれらのイベントが発生するのを見ることです。 コード例を変更しました。ありがとうございます。 – tjclement
私の回答を更新しました... – Anfuca
これは、Firebaseが作成したもの(データのストリーミング)に反するため、これは本当に意図された動作であることを受け入れるのに苦労しています。 – tjclement