0

Je crée une application de discussion. Il y a un nœud particulier dans ma base de données Firebase qui stocke une conversation que cet utilisateur a eu avec une autre personne (une liste de messages). Je charge ces messages sur mon application en utilisant un FirebaseRecyclerAdapter qui fait partie de FirebaseUI. Cela fonctionne très bien, mais je suis inquiet au sujet de la mise à l'échelle. Si une conversation devait dire avoir plus de 20 000 messages (ce que font beaucoup de conversations!), Cela va-t-il se charger? Firebase charge-t-il ces données de la base de données Firebase en une fois ou par lots?
Si non comment exactement charger des données dans des lots dans un RecylcerView (S'il y a 1000 articles, initialement 1000 - 980, lorsque l'utilisateur fait défiler 980 - 960 etc.) Je comprends que je peux utiliser les endAt() et limitToLast() fonctions pour charger des données dans les lots dans la source de données (ArrayList) mais comment puis-je implémenter un RecyclerView qui charge de cette par lots?FirebaseRecyclerAdapter (à partir de la base de données FirebaseUI) charge-t-il les données d'une liste (dans la base de données Firebase) par lots?

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); 

Répondre

0

Les adaptateurs FirebaseUI charge toutes les données que vous les pointez à travers le Query ou DatabaseReference que vous passez au constructeur. Il n'y a pas de chargement différé intégré ou de pagination.

Voir aussi: