2016-07-29 15 views
1

私はsetPersistenceEnabledをtrueに設定しました。私はaddValueEventListenerを使用しており、その中にはonDataChangeメソッドがあります。 私のアプリは、そのメソッドが呼び出されるたびにサーバーからデータをダウンロードしますか、または利用可能であれば私のアプリはキャッシュからデータを取得しますか? 私はオフラインになっていますが、データがキャッシュから得られたと確信しています。あなたはaddValueEventListener()でリスナーを接続し、データをローカルディスクキャッシュで利用可能である場合にはFirebaseリアルタイムデータベースaddValueEventListener

#askFirebase 

答えて

3

onDataChange()方法がすぐにキャッシュからのデータで発生します。

Firebaseクライアントは、データの更新のためにサーバーに登録します。更新されたデータを受信するたびに、再度onDataChange()が呼び出されます。

ローカルディスクキャッシュに古くなったデータがある場合は、「クイック」連続でへの2回のコールが受信されることがあります.1つは古くなったデータで、もう1つは最新のデータです。現在、データが古くなっているかどうかを確認する方法はありません。

これが本当に難しい状況を作り出すのは、addListenerForSingleValueEvent()を使用するときだけです。最初のonDataChange()イベントのみが取得されるため、失効したデータしか取得できません。これは、単一値イベントリスナーとディスク永続性を混在させないことを推奨する理由の1つです。

関連する問題