How to use equalto() method in FirebaseRecyclerPagingAdapter while writing query
I am making an application in which data is coming from firebase. I want to use FirebasePagingRecyclerAdapter in it. But when i am using this adapter then i am getting error which says "I can’t use equalto() and startAt() method at same time". But it is important to me to use equalto() method to fetch correct data. Please tell me is there any way to use equalto() method with FirebasePagingAdapter.
This is my code:
classname = getIntent().getStringExtra("classname"); if (classname.equals("A")) { content = getIntent().getStringExtra("jokecontent"); funnyJokesQuery = FirebaseDatabase.getInstance().getReference("ContentJokes").orderByChild("subcategory") .equalTo(content); } else if (classname.equals("B")) { content = getIntent().getStringExtra("shayaricontent"); funnyJokesQuery = FirebaseDatabase.getInstance().getReference("ContentShayari").orderByChild("subcategory") .equalTo(content); } final PagedList.Config config = new PagedList.Config.Builder() .setEnablePlaceholders(false) .setPrefetchDistance(5) .setPageSize(10) .build(); DatabasePagingOptions<ContentModel> options = new DatabasePagingOptions.Builder<ContentModel>() .setLifecycleOwner(this) .setQuery(funnyJokesQuery, config, ContentModel.class) .build(); mAdapter = new FirebaseRecyclerPagingAdapter<ContentModel, ConPostViewHolder>(options) { @NonNull @Override public ConPostViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ConPostViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.content, parent, false)); } @Override protected void onBindViewHolder(@NonNull ConPostViewHolder conPostViewHolder, int i, @NonNull final ContentModel contentModel) { conPostViewHolder.textView.setText(contentModel.getContent()); DatabaseReference reference = getRef(i); conPostViewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(ContentActivity.this, ContentViewActivity.class); i.putExtra("valuecontent", contentModel.getContent()); i.putExtra("position",i); i.putParcelableArrayListExtra("contentmodels", contentModel); startActivity(i); } }); } @Override protected void onLoadingStateChanged(@NonNull LoadingState state) { switch (state) { case LOADING_INITIAL: case LOADING_MORE: // Do your loading animation mSwipeRefreshLayout.setRefreshing(true); break; case LOADED: // Stop Animation mSwipeRefreshLayout.setRefreshing(false); break; case FINISHED: //Reached end of Data set mSwipeRefreshLayout.setRefreshing(false); break; case ERROR: retry(); break; } } @Override protected void onError(@NonNull DatabaseError databaseError) { mSwipeRefreshLayout.setRefreshing(false); databaseError.toException().printStackTrace(); retry(); // Handle Error } }; mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { mAdapter.refresh(); } }); recyclerView.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); } private class ConPostViewHolder extends RecyclerView.ViewHolder { TextView textView; public ConPostViewHolder(@NonNull View itemView) { super(itemView); textView = itemView.findViewById(R.id.contentText); } } @Override protected void onStart() { super.onStart(); mAdapter.startListening(); } //Stop Listening Adapter @Override protected void onStop() { super.onStop(); mAdapter.stopListening(); }
The activity is crashing when i scroll the recyclerview. Please help.