私はアンドロイドアプリでfirebaseリアルタイムデータベースを使用しています。私はデータベースに挿入された最後のエントリのみを必要とし、データベース全体ではありませんsync.Iは以下を実行しています。ここでファイアベースリアルタイムデータベースに関する問い合わせ
FirebaseDatabase.getInstance().getReference("reference").limitToLast(1).addValueEventListener(this);
は、私ははっきりと理解できないものだ:
1.When私はlimitToLastを行うとリスナーを追加し、それがローカルコピーに、データベースから全データをダウンロードし、私のスナップショットを渡すん最後のエントリか、それとも最後のエントリだけをダウンロードしますか?
2.リスナーを削除すると、リアルタイムデータベースとローカルデータ間の同期が停止するか同期が継続しますが、onDataChangeは呼び出されませんか?
3.値イベントリスナーを削除してオフラインにするまでの違い。
私のFirebaseコンソールのUsageタブには、期間中にアクティブなリスナーがいなくても、1時間に2MBをダウンロードしていることが示されています。なぜこれが起こっているのでしょうか? –
このような限られた情報からは言い難いです。しかし、Chromeデベロッパーツールの[ネットワーク]タブを確認すると、WS(ウェブソケット用)パネルで正確なトラフィックを確認できます。クエリに一致するデータよりも多くのデータをダウンロードしている場合は、[データにインデックスを付ける](https://firebase.google.com/docs/database/security/indexing-data)を忘れている可能性があります。また、その場合はJavaScriptコンソールに警告が表示されます。 –
私はインデックスにデータを置いていませんが、なぜデータが必要以上にダウンロードされるのでしょうか? –