2016-04-17 15 views
0

いくつかの調査をした後、AndroidがFirebaseのデータをどの程度正確にダウンロードしているかはまだ分かりません。 Androidには、AsyncTaskやVolleyのようなパフォーマンスのベストプラクティスがたくさんありますが、Firebaseがどのように動作しているかを理解してから、私が決定できるようにする必要があります。AndroidのFirebaseからデータを効率的にダウンロードするには?

具体的には、Firebaseは別のスレッドでデータをロードしますか? FirebaseRecyclerAdapterにプロファイル(テキストを含むプロフィール画像)をダウンロードする際、最初に各プロファイルのテキストと別のスレッドの画像をダウンロードしたいと思います。私はインターネットからデータを正常にダウンロードするときにこれを行う方法を知っていますが、Firebaseが既に何をしているのか分かりません。

答えて

1

Firebaseは、すべての(ネットワーク、ディスクなどの)操作に単一のスレッドを使用します。しかし、コールバックはメインスレッド上で常に呼び出されるため、UIと安全にやりとりすることができます。

しかし、コールバックで簡単な操作を実行した場合、メインスレッドからこれらの操作を実行するのは通常どおりです。したがって、AsyncTaskまたはIntentServiceは依然として適切なアプローチです。

+0

ありがとう、それはたくさんの意味があります。私はこのトピックを広すぎるようにしたくないので、最後の質問を1つだけお願いします。 Firebaseはデータのローカルコピーを保存します。自動的にキャッシュするか、それとも自分で行う必要がありますか? – TomasKok

+0

Firebaseは、アプリケーションがアクティブなリスナーを持つすべてのデータをメモリに保持します。ロケーションの最後のリスナーをデタッチすると、データはメモリから削除されます。ディスク永続性を有効にしている場合は、アプリが最近ディスク上で取得したすべてのデータのコピーも保持されます。 –

関連する問題