Hi I’m implementing a simple search where it will filter based on if the text is the same as the record in the database but I’m having this error could someone help me?
Using equalsTo
I can’t open the fragment it just breaks when trying to open the fragment, what am I doing wrong?
Any help is welcome. Thanks in advance.
Caused by: java.lang.ClassCastException: com.google.firebase.database.Query cannot be cast to com.google.firebase.database.DatabaseReference
public class FindFriendsActivity extends AppCompatActivity { private Toolbar mToolbar; private RecyclerView FindFriendsRecyclerList; private DatabaseReference UsersRef; private MaterialSearchView searchView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_find_friends); UsersRef = (DatabaseReference) FirebaseDatabase.getInstance().getReference().child("Users").orderByChild("name").equalTo(String.valueOf(searchView)); searchView = findViewById(R.id.materialSearchPrincipal); FindFriendsRecyclerList = (RecyclerView) findViewById(R.id.find_friends_recycler_list); FindFriendsRecyclerList.setLayoutManager(new LinearLayoutManager(this)); mToolbar = (Toolbar) findViewById(R.id.find_friends_toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setTitle("Find Friends"); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); //Configurar botao de pesquisa MenuItem item = menu.findItem(R.id.menuPesquisa); searchView.setMenuItem(item); return super.onCreateOptionsMenu(menu); } @Override protected void onStart() { super.onStart(); FirebaseRecyclerOptions<Contacts> options = new FirebaseRecyclerOptions.Builder<Contacts>() .setQuery(UsersRef, Contacts.class) .build(); FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder> adapter = new FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder>(options) { @Override protected void onBindViewHolder(@NonNull FindFriendViewHolder holder, final int position, @NonNull Contacts model) { holder.userName.setText(model.getName()); holder.userStatus.setText(model.getStatus()); Picasso.get().load(model.getImage()).placeholder(R.drawable.profile_image).into(holder.profileImage); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String visit_user_id = getRef(position).getKey(); Intent profileIntent = new Intent(FindFriendsActivity.this, ProfileActivity.class); profileIntent.putExtra("visit_user_id", visit_user_id); startActivity(profileIntent); } }); } @NonNull @Override public FindFriendViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.users_display_layout, viewGroup, false); FindFriendViewHolder viewHolder = new FindFriendViewHolder(view); return viewHolder; } }; FindFriendsRecyclerList.setAdapter(adapter); adapter.startListening(); } public static class FindFriendViewHolder extends RecyclerView.ViewHolder { TextView userName, userStatus; CircleImageView profileImage; public FindFriendViewHolder(@NonNull View itemView) { super(itemView); userName = itemView.findViewById(R.id.user_profile_name); userStatus = itemView.findViewById(R.id.user_status); profileImage = itemView.findViewById(R.id.users_profile_image); } } }
Advertisement
Answer
It’s not a DatabaseReference
:
private Query UsersRef;