0

Ich baue eine Chat-App. Es gibt einen bestimmten Knoten in meiner Firebase Datenbank, die ein Gespräch speichert die Nutzer mit einer anderen Person hatten (eine Liste der Meldungen.) Ich bin diese Nachrichten auf meiner app mit einem FirebaseRecyclerAdapter Laden, der ein Teil von FirebaseUI ist. Es funktioniert sehr gut, aber ich mache mir Sorgen wegen Skalierung. Wenn eine Konversation sagen würde, dass 20.000 + Nachrichten (was viele Konversationen tun!) Wird es geladen? Lädt Firebase diese Daten aus der Firebase-Datenbank auf einmal oder in Stapeln?
Wenn nicht, wie genau lade ich Daten in Chargen in einen RecylcerView (wenn es 1000 Elemente, die ursprünglich 1000-980, wenn der Benutzer scrollt bis 980-960 etc.) Ich verstehe, dass ich die Endat verwenden kann() und limitToLast() Funktionen, um Daten in den Reihen in die Datenquelle zu laden (Arraylist), aber wie implementiere ich eine RecyclerView, die von diesem in Chargen lädt?Does FirebaseRecyclerAdapter (von FirebaseUI Datenbank) Lastdaten aus einer Liste (in der Firebase-Datenbank) in den Reihen?

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

Antwort

0

Die FirebaseUI Adapter alle Daten laden, die Sie sie durch die Query oder DatabaseReference verweisen, die Sie in dem Konstruktor übergeben. Es gibt kein eingebautes verzögertes Laden oder Paginieren.

Siehe auch:

Verwandte Themen