0

私はチャットアプリを構築しています。私の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); 

答えて

0

FirebaseUIアダプタを使用すると、コンストラクタに渡すQueryまたはDatabaseReferenceを通じてそれらをポイントするすべてのデータをロードします。遅延ロードやページネーションは組み込まれていません。

も参照してください。

関連する問題