私はチャットアプリを構築しています。私のFirebaseデータベースには、このユーザが別の人(メッセージのリスト)との会話を保存するノードがあります。FirebaseUIの一部であるFirebaseRecyclerAdapterを使用して、これらのメッセージをアプリケーションに読み込んでいます。それは非常にうまくいくが、スケーリングについて心配している。会話に20,000件以上のメッセージ(多くの会話があります)がある場合、それは読み込まれますか? FirebaseはこのデータをFirebaseデータベースから一度に、または一括してロードしますか?
データを一括してRecylcerViewにロードする方法がない場合(1000個の項目がある場合は最初は1000〜980、ユーザーが980〜960までスクロールします)、endAt()とlimitToLast ()関数を使用してデータをバッチでデータソース(ArrayList)にロードしますが、これをバッチでロードするRecyclerViewを実装するにはどうすればよいですか?FirebaseRecyclerAdapter(FirebaseUIデータベースから)は、(Firebaseデータベース内の)リストのデータをバッチでロードしますか?
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
final DatabaseReference databaseReference = /*Database Reference */ ;
databaseReference.keepSynced(true);
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Chat, RecyclerView.ViewHolder>(Chat.class, R.layout.chat_message_received, RecyclerView.ViewHolder.class, databaseReference.orderByChild("timeStamp").getRef()) {
//...Code
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
recyclerView.scrollToPosition(firebaseRecyclerAdapter.getItemCount() - 1);