また、オブジェクトが次のようなコールバックを介して更新されている場合も同じように機能しますref.on('value', ...
か?
Chrome開発ツールで自分でそれを理解しようとしましたが、できませんでした。
私はユーザーが大量のテキストを保存する可能性のあるアプリに取り組んでいるので、これは私にとって違いを生みます。差分のみがネットワーク経由で送信される場合、それははるかに軽量であり、私ははるかに頻繁に同期することができます。完全な値が送信された場合、私はそれをしたくありません。
また、オブジェクトが次のようなコールバックを介して更新されている場合も同じように機能しますref.on('value', ...
か?
Chrome開発ツールで自分でそれを理解しようとしましたが、できませんでした。
私はユーザーが大量のテキストを保存する可能性のあるアプリに取り組んでいるので、これは私にとって違いを生みます。差分のみがネットワーク経由で送信される場合、それははるかに軽量であり、私ははるかに頻繁に同期することができます。完全な値が送信された場合、私はそれをしたくありません。
データが書き込まれると、Firebase サーバーは現在、書き込まれているすべてのデータをサーバーに送信します。大きなオブジェクトを作成し、同じオブジェクトでオブジェクト全体を再度書き直すと、オブジェクト全体がネットワーク経由で送信されます (これは将来変更される可能性がありますが、現在の実装です)。
サーバーから他のクライアントにデータを送り返すとき、いくつかの最適化を行い、重複データの一部を送信しません。
Firebase は、データにきめ細かくアクセスできるように設計されています。変更されているデータに対処し、関連する部分のみを更新することを強くお勧めします。例えば:
//inefficient method:
ref.set(HUGE_BLOCK_OF_JSON);
//efficient method:
ref.child("a").child("b").child("c").set(SOME_SMALL_PIECE_OF_DATA);
データの一部にアドレス指定すると、その小さな部分のみが送信され、他のクライアントに再ブロードキャストされます。
Firebase は、データが変更されるとすぐに更新が行われる真のリアルタイム アプリを対象としています。意図的に変更をしばらくキャッシュし、パフォーマンス上の理由から大きな BLOB として保存している場合は、おそらくデータを分割して、関連する部分のみを書き込む必要があります。