2017-11-28 6 views
0

私は自分のアプリでチャット機能を実装しています。私はその2つのアクティビティ(ChatRoomアクティビティ)と(ChatActivity)を使用しました。Firebaseはリサイクラビューに読み込む前にデータを準備します

チャットルームアクティビティ

これはチャットルームを示しアクティビティになります。

チャットアクティビティ

これはチャットルームをクリックすると起動する活動を意味し、チャットメッセージを示しアクティビティになります。

私の問題

私はそれらを表示するために、メッセージをつかむために子供リスナー、およびリサイクルビューを使用します。これは正常に動作します。

しかし、(ChatActivity)が開始されると、データを正しく表示するには約3秒の遅延が発生するという問題があります。

つまり、データは3秒前に正しく表示されませんが、3秒後にデータが表示されます。一般的なチャットアプリの一般的に使用されるチャットのアプリで

場合、あなたはデータが(何のロードの進行状況&ノースプラッシュスクリーン)だけではありませんチャットルームをクリックします。

私は何を知っていますかと私は

1をどう思いますか)私はfirebaseがディスクに同期して更新されたノードを維持する必要があります同期ノードを維持することによってと呼ばれるものを持っていることを知っています。このように使用

reference.keepSynced(true); 

とも私はfirebaseがサーバーから読み取る前に、ディスクから読み込むことを知っています。

2)私はチャットルームをクリックする前に、ほとんどのチャットアプリがデータを準備していると思いますので、チャットルームが見つかっただけです(読み込み中ではありません)。

この問題の解決方法についてのご意見はありがたいです。 1

あなたはこの3secondsを持ってしたくない場合は

答えて

0

ソリューションを使用すると、チャットルームをロードし、チャットアクティビティにデータを渡している間にチャットをプリフェッチ何を検討するかもしれません遅らせます。部屋またはレルムなどのオフラインのデータベースを使用して

ソリューション2

保存チャートの歴史とfirebaseから1をロードしたときにそのロードされたデータをマージしている間、そこからチャットをフェッチします。

+0

どのようにプリフェッチについて行っていますか、返信いただきありがとうございます。 –

+0

これは大きなデータの場合は実際には良い解決策ではありませんが、それは動作します。この意味でのプリフェッチは、ユーザーがチャットルームにいる間はチャットデータを取得しています。 –

+0

はい私はあなたが意味することを知っていますが、あなたが知っているように、チャットデータは継続的ですので、私はチャットルームのアクティビティでデータを取得すれば、時間外に非常に大きくなる傾向があります。そして、データがすでに準備されているという保証は何ですか? –

関連する問題