0

I'm using RecyclerView with FirebaseRecyclerAdapter.But when i run my app. RecyclerView load all data. But I want to load first 10 item then user reached bottom load another 10.

I searched pagination but all tutorials are automatically assuming that i keep my data in reference that i gave adapter.But İ keep data like this.

Actual Post data tree

All post data is stored under "postall" parent.

User Main feed

And user run app recycler view get second picture get post key from there and create new reference then load data.

My code:

options = new FirebaseRecyclerOptions.Builder<Post>().setQuery(reference,Post.class).build();
    vhadapter = new FirebaseRecyclerAdapter<Post, viewholder>(options) {
        @Override
        public long getItemId(int position) {
            return position;
        }
        @Override
        public int getItemViewType(int position) {
            return position;
        }

        @Override
        protected void onBindViewHolder(@NonNull final viewholder holder, final int position, @NonNull Post model) {

            getRef(position).addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    DatabaseReference reference1=FirebaseDatabase.getInstance().getReference().child("postall").child(dataSnapshot.getKey());
                    reference1.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if(dataSnapshot.exists()){
                                //get data
                            }
                            else{

                            }

                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }
                    });
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
        }

        @NonNull
        @Override
        public viewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.home_item_image,viewGroup,false);

            return new viewholder(view);
        }
    };
    vhadapter.setHasStableIds(true);
    recyclerView.setAdapter(vhadapter);


    vhadapter.startListening();

how can i make pagination in this case.

place where recyclerview get data

Reycler view read all of this data getpost key from data,create new databse reference to actual data then load data.But i want to do load 10 item at beggining then when user reached recyclerview bottom load another 10.

uzaysan
  • 583
  • 1
  • 4
  • 18
  • If you want at some point to try [Cloud Firestore](https://firebase.google.com/docs/firestore/), **[this](https://stackoverflow.com/questions/50741958/how-to-paginate-firestore-with-android)** is a recommended way in which you can paginate queries by combining query cursors with the limit() method. I also recommend you take a look at this **[video](https://www.youtube.com/watch?v=KdgKvLll07s)** for a better understanding. – Alex Mamo Oct 09 '18 at 11:18
  • @AlexMamo I'm not using firestore im using realtime databse.I've edited my question take a look. – uzaysan Oct 09 '18 at 11:29

0 Answers0