RecyclerView for Android を使用した Firestore ページネーション
ページネーションは、大規模なデータセットを効率的に表示し、ユーザー エクスペリエンスを向上させるために使用される重要なテクニックです。 Firestore では、クエリ カーソルと limit() メソッドを組み合わせてページネーションを実行できます。
解決策:
RecyclerView で Firestore データをページネーションするには、次の手順に従います。
グローバルの定義変数:
最初のクエリを取得する:
ドキュメントの最初のバッチを取得します:
スクロールを実装するpagination:
最後のページを処理します:
コード例:
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); } } });
これらの手順に従うことで、Android で Firestore データの効率的かつリアルタイムのページネーションを実装できます。アプリケーション。
以上がAndroid で RecyclerView を使用して Firestore ページネーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。