I am working with a Firebase Database where I am saving some player details as a list in value for a key. Following is my table structure:
Here in EventPlayer
I have eventID
as key and for eventID
I am pushing Player details as EventPlayer
model.
Now in my application I want to fetch the list of players for an eventID
and display it in RecyclerView
. I have tried various combinations but I am not able to get it. My code below:
FirebaseRecyclerAdapter<UserDataClass, EventPlayers.EventPlayerViewHolder> adapter= new FirebaseRecyclerAdapter<UserDataClass, EventPlayers.EventPlayerViewHolder>(
UserDataClass.class,
R.layout.eventplayercard,
EventPlayers.EventPlayerViewHolder.class,
mref.child("EventPlayer").orderByChild("eventID").equalTo(eventId)
) {
@Override
protected void populateViewHolder(EventPlayers.EventPlayerViewHolder viewHolder, final UserDataClass model, int position) {
viewHolder.PlayerName.setText(model.getName());
viewHolder.PlayerPosition.setText("Position: "+model.getPosition());
viewHolder.PlayerFoot.setText("Foot: "+model.getPreffoot());
viewHolder.PlayerKnownAs.setText("Event Date: "+model.getKnownas());
final String key = this.getRef(position).getKey();
viewHolder.btnRemove.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
AlertDialog.Builder alert = new AlertDialog.Builder(EventPlayers.this);
alert.setTitle("Remove Player");
alert.setMessage("Are you sure you want to remove player?");
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
mref.child("EventRequest").child(mAuth.getCurrentUser().getUid()).child(key).setValue(null);
}
});
alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alert.show();
}
});
}
};
recyclerView.setAdapter(adapter);
Code to push EventPlayer
:
mref.child("EventPlayer").child(model.getEventID()).push().setValue(model);
You need to change the 4th argument when your are creating an object of FirebaseRecyclerAdapter
like this:
mref.child("EventPlayer").orderByChild("eventID").equalTo(eventId)
with
mref.child("EventPlayer").child(model.getEventID()).orderByChild("eventID").equalTo(eventId)