Penomboran Firestore dengan RecyclerView untuk Android
Penomboran ialah teknik penting yang digunakan untuk memaparkan set data yang besar dengan cekap dan meningkatkan pengalaman pengguna. Dalam Firestore, penomboran boleh dicapai dengan menggabungkan kursor pertanyaan dan kaedah had().
Penyelesaian:
Untuk menomborkan data Firestore dalam RecyclerView, ikut langkah berikut:
Tentukan global pembolehubah:
Dapatkan pertanyaan awal:
Dapatkan kumpulan awal dokumen:
Laksanakan penomboran skrol:
Kendalikan yang terakhir halaman:
Kod Contoh:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance(); CollectionReference productsRef = rootRef.collection("products"); Query query = productsRef.orderBy("productName", Query.Direction.ASCENDING).limit(limit); query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (DocumentSnapshot document : task.getResult()) { ProductModel productModel = document.toObject(ProductModel.class); list.add(productModel); } productAdapter.notifyDataSetChanged(); lastVisible = task.getResult().getDocuments().get(task.getResult().size() - 1); RecyclerView.OnScrollListener onScrollListener = new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { LinearLayoutManager linearLayoutManager = ((LinearLayoutManager) recyclerView.getLayoutManager()); int firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition(); int visibleItemCount = linearLayoutManager.getChildCount(); int totalItemCount = linearLayoutManager.getItemCount(); if (isScrolling && (firstVisibleItemPosition + visibleItemCount == totalItemCount) && !isLastItemReached) { isScrolling = false; Query nextQuery = productsRef.orderBy("productName", Query.Direction.ASCENDING).startAfter(lastVisible).limit(limit); nextQuery.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> t) { if (t.isSuccessful()) { for (DocumentSnapshot d : t.getResult()) { ProductModel productModel = d.toObject(ProductModel.class); list.add(productModel); } productAdapter.notifyDataSetChanged(); lastVisible = t.getResult().getDocuments().get(t.getResult().size() - 1); if (t.getResult().size() < limit) { isLastItemReached = true; } } } }); } } }; recyclerView.addOnScrollListener(onScrollListener); } } });
Dengan mengikut langkah ini, anda boleh melaksanakan penomboran yang cekap dan masa nyata untuk data Firestore dalam aplikasi Android anda.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran Firestore dengan RecyclerView dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!