Firebase database contains data for different keys. I need to query and show this data with recyclerview. but since the same data are saved many times in the database, the same results appear many times in recyclerview. I want to prevent this. Even though the queried value is dozens of times in the database, I want it to be displayed only once in recyclerview. How can I do that. I will be happy if you help.
InfiniteFirebaseArray infiniteFirebaseArray = new InfiniteFirebaseArray();
infiniteFirebaseArray.getSearch(areaCode + phoneNumber);
mAdapter = new InfiniteFirebaseRecyclerAdapter<ContactList, NameViewHolder>(ContactList.class, R.layout.layout_search_contact_list_item,
NameViewHolder.class, mUserDatabase, mPageLimit) {
@Override
protected void populateViewHolder(NameViewHolder viewHolder, ContactList model, int position) {
Logger.enter();
if (model != null) {
String string = model.getDisplay_name();
String firstletter = string.substring(0, 1);
resultcount++;
viewHolder.name.setText(model.getDisplay_name());
viewHolder.phone.setText(model.getPhone_number());
viewHolder.userImageText.setText(firstletter);
ContactResult contactResult = new ContactResult();
contactResult.setName(model.getDisplay_name());
contactResult.setPhone(model.getPhone_number());
contactLists.add(contactResult);
Log.d("testcontacts",String.valueOf(contactLists.get(position).getName()));
viewHolder.callPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNumber = contactLists.get(position).getPhone();
callPhone(phoneNumber);
}
});
viewHolder.addContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String contactName = contactLists.get(position).getName();
String contactPhoneNumber = contactLists.get(position).getPhone();
addContact(contactName, contactPhoneNumber);
}
});
}
Logger.exit();
}
};
Search_Contact_List.setAdapter(mAdapter);
Search_Contact_List.addOnScrollListener(new EndlessRecyclerViewScrollListener(gridLayoutManager) {
@Override
public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
Logger.enter();
mAdapter.more();
Logger.exit();
}
});