Cómo implementar Paginate una consulta en Android Firestore [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Cómo paginar Firestore con Android? 2 respuestasSobre trabajar para aprender firebase firestore para un ejemplo de GitHubaplicación amigable comer
Pensé implementar la paginación para limitar los nodos para 10
privado estático int int LIMIT = 10;
en la aplicación de ejemplo de firestore, el adaptador de mAda carga datos / nodos como se muestra a continuación
mFirestore = FirebaseFirestore.getInstance();
// Get ${LIMIT} restaurants
mQuery = mFirestore.collection("restaurants")
.orderBy("avgRating", Query.Direction.DESCENDING)
.limit(LIMIT);
// RecyclerView
mAdapter = new RestaurantAdapter(mQuery, this) {
@Override
protected void onDataChanged() {
// Show/hide content if the query returns empty.
if (getItemCount() == 0) {
mRestaurantsRecycler.setVisibility(View.GONE);
mEmptyView.setVisibility(View.VISIBLE);
} else {
mRestaurantsRecycler.setVisibility(View.VISIBLE);
mEmptyView.setVisibility(View.GONE);
}
}
@Override
protected void onError(FirebaseFirestoreException e) {
// Show a snackbar on errors
Snackbar.make(findViewById(android.R.id.content),
"Error: check logs for info.", Snackbar.LENGTH_LONG).show();
}
};
mRestaurantsRecycler.setLayoutManager(new LinearLayoutManager(this));
mRestaurantsRecycler.setAdapter(mAdapter);
// Filter Dialog
mFilterDialog = new FilterDialogFragment();
}
y
@Override
public void onStart() {
super.onStart();
// Start sign in if necessary
if (shouldStartSignIn()) {
startSignIn();
return;
}
// Apply filters
onFilter(mViewModel.getFilters());
// Start listening for Firestore updates
if (mAdapter != null) {
mAdapter.startListening();
}
}
en los documentos de Firestore dice que va a paginar
// Construct query for first 25 cities, ordered by population
Query first = db.collection("cities")
.orderBy("population")
.limit(25);
first.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
// ...
// Get the last visible document
DocumentSnapshot lastVisible =
documentSnapshots.getDocuments()
.get(documentSnapshots.size() -1);
// Construct a new query starting at this document,
// get the next 25 cities.
Query next = db.collection("cities")
.orderBy("population")
.startAfter(lastVisible)
.limit(25);
// Use the query for pagination
// ...
}
});
combinando los códigos anteriores, ¿cómo debo implementar paginate para cargar más de 10 nodos para cargar cuando me desplazo hasta la parte inferior de la vista del reciclador?
// Usa la consulta para paginación
// ...
Actualizar: Estoy trabajando basado en el documento de Firestore sobreConsulta paginada y mirando unposible duplicado de otra pregunta No pude hacerlo trabajando
Gracias