Es ist eine Chat-App. Ich erhalte Nachrichten, die auf der Recycleransicht des Chatrooms angezeigt werden. Dafür benutze ich FirebaseRecyclerAdapter. Ich erhalte die letzten 500 Nachrichten. Und dieser Chat-Raum hat über 20k Nachrichten. Wenn ich diese Aktivität lade, dauert es 6 Sekunden, um alle 500 Nachrichten zu laden.Verzögerung beim Abrufen von Daten aus der Firebase-Datenbank
Ich verfolgte die Zeit.
Die Verzögerung lag zwischen setAdapter und RecyclerAdapter Klasse.
Meine Nachrichtenstruktur in Firebase Datenbank
{
"-KlQc42ici0_PRCBX7-V" : {
"message" : "message 1",
"timestamp" : 1496185853436,
"type" : "action",
"username" : "berkleef2",
},
"-KlQmhcwK96j30FNoSs-" : {
"message" : "message 2",
"timestamp" : 1496188640000,
"type" : "action",
"username" : "atrickrodney16yahoocomat",
"zread" : true
},
"-KlQmjSoucJD7uaHriOh" : {
"message" : "message 3",
"timestamp" : 1496188647083,
"type" : "text",
"username" : "atrickrodney16yahoocomat",
"zread" : true
}
}
Die Delay-Start nach setAdapter
mNewAdapter = new NewChatRecyclerAdapter(
ChatMessageItem.class,
R.layout.message_item,
RecyclerView.ViewHolder.class, ref.limitToLast(500), Fusername, booIsPrivateChat, chatd, strOpponent);
messageList.setAdapter(mNewAdapter);
Ich denke, es ist kein Problem mit der Adapter-Klasse ist. Also, wenn das Problem mit dem Laden von 500 Nachrichten ist. Was soll ich dann in diesem Fall zu tun laden Chat-Nachrichten ...
Persistenz ist aktiviert. Aber wenn ich die App neu starte das gleiche Ergebnis ... – Bucky