Можно ли объединить FirestorRecyclerAdaper с нумерацией страниц? - PullRequest
0 голосов
/ 09 сентября 2018

Я использую 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();
     }

1 Ответ

0 голосов
/ 09 сентября 2018

Вы ничего не можете сделать здесь без значительного изменения кода.

Существует FirestorePagingAdapter от Firebase-UI, который может помочь вам с необходимыми изменениями.

Существует также пример кода, который я написал с одним примером использования подкачки компонентов архитектуры Android вместе с Firestore и базой данных реального времени.

...