是否可以将FirestorRecyclerAdaper与分页结合起来?

问题描述 投票:0回答:1

我正在使用FirestoreRecyclerAdaper与正常形式的检索和显示数据。

我的数据变得更大,我想在其中加入分页,但我没有找到任何关于这一点的教程。我阅读了文档,但没有显示如何做到这一点,因为他们只有一个适配器和2个查询,FirestorRecyclerAdaper只接受一个查询。他们的解决方案也没有改变我的代码?

final Query query = firebaseFirestore
         .collection("Ads")
         .orderBy("creationDate", Query.Direction.DESCENDING).limit(5);
     query.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
          @Override
          public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
          DocumentSnapshot lastVisible = queryDocumentSnapshots
              .getDocuments().get(queryDocumentSnapshots.size() - 1);


          Query next = firebaseFirestore.collection("Ads")
              .orderBy("creationDate")
              .startAfter(lastVisible)
              .limit(10);


          }

     });
 options = new FirestoreRecyclerOptions
         .Builder<MyAdCard>()
         .setQuery(query, MyAdCard.class)
         .build();

     dapter = new FirestoreRecyclerAdapter<MyAdCard, AllCardViewHolder>(options) {
          @Override
          protected void onBindViewHolder(@NonNull final AllCardViewHolder holder, final int position, @NonNull MyAdCard model) {
          holder.publicAd_discription.setText(model.getMyAddiscriptiontxt());



          }

          @NonNull
          @Override
          public AllCardViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
          View view = LayoutInflater.from(parent.getContext())
              .inflate(R.layout.cardview_categoryads, parent, false);
          return new AllCardViewHolder(view);

          }
     };
     categoryAdsRV.setAdapter(dapter);
 private class AllCardViewHolder extends RecyclerView.ViewHolder {
     public AllCardViewHolder(View itemView) {
          super(itemView);
     }

     TextView publicAd_discription = itemView.findViewById(R.id.publicAd_Discription);
     }

     @Override
     protected void onStart() {
     super.onStart();
     dapter.startListening();

     }

     @Override
     protected void onStop() {
     super.onStop();
     if ( dapter != null ) dapter.stopListening();
     }
android firebase google-cloud-firestore firebaseui
1个回答
1
投票

如果不显着更改代码,您无需执行任何操作。

来自Firebase-UI的FirestorePagingAdapter可以帮助您完成需要进行的更改。

还有a sample code I wrote,其中有一个使用Android Architecture Components Paging以及Firestore和Realtime Database的例子。

© www.soinside.com 2019 - 2024. All rights reserved.