Ich fange an Firebase zu verwenden und alles sieht gut aus, aber ich habe 50k Datensätze in einem recyclerview
zu zeigen, und ich kann nicht herausfinden, wie zu paginate oder etwas ähnliches, weil alle gleichzeitig laden viel Zeit. Ich habe childEventListener
und FirebaseUI auch ohne Glück verwendet.Wie man ein Firebase Recyclerview paginate
UPDATE 1: Endlich habe ich für das Update 1 gearbeitet, das ist nicht die beste Lösung dafür, aber ich denke, ich werde später einige Änderungen vornehmen.
private String lastKey = null;
private List<Comment> commentList = new ArrayList<>();
private final static int QUERY_LIMIT = 20;
private int page = 0;
private void loadComments() {
page++;
ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Comment comment = dataSnapshot.getValue(Comment.class);
commentList.add(comment);
adapter.notifyDataSetChanged();
lastKey = String.valueOf(comment.getTimestamp());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
if (lastKey != null) {
commentList.clear();
adapter.notifyDataSetChanged();
comments.child(id_post).orderByChild("timestamp").endAt(lastKey).limitToLast(QUERY_LIMIT * page).addChildEventListener(childEventListener);
} else {
comments.child(id_post).orderByChild("timestamp").limitToLast(QUERY_LIMIT).addChildEventListener(childEventListener);
}
}
Sie haben Methoden, um Ergebnisse zu begrenzen, die Sie verwenden können, um Seitenumbruch zu implementieren: https://www.firebase.com/docs/android/guide/retrieving-data.html –
Seitenumbruch mit Firebase ist nicht einfach. Es wurde [Dutzende Male vorher gefragt und abgedeckt] (http://stackoverflow.com/search?q=%5Bfirebase%5D+pagination). Wenn Sie nicht zeigen, was Sie versucht haben und wo Sie konkret stecken bleiben, stimme ich Ihnen zu, dass dies zu weit gefasst ist. –