I am trying to retrieve the groups from my firebase database.Inside groups I am trying to retrieve the group data list and all the nodes and their data from inside.I currently have just 1 group made but on my home page I am not able to retrieve the data.I am not getting any error but it is all showing null and my textviews are blank.
My main class
public class Homepage extends Fragment {
private RecyclerView mRecyclerView;
private DatabaseReference ref;
private FirebaseDatabase database;
private MyAdapter myAdapter;
private List<model> list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_homepage, container, false);
FloatingActionButton floatingActionButton = v.findViewById(R.id.floatingActionButton);
mRecyclerView = v.findViewById(R.id.recyclerview);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
database = FirebaseDatabase.getInstance();
ref = database.getReference().child("Chatrooms").child("chatroomdata");
list = new ArrayList<>();
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
for (DataSnapshot npsnapshot : snapshot.getChildren()) {
model l = npsnapshot.getValue(model.class);
list.add(l);
}
myAdapter = new MyAdapter(list);
mRecyclerView.setAdapter(myAdapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(),createchatroom.class));
}
});
return v;
}
My adapter and viewholder
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private List<model> list;
public MyAdapter(List<model> list) {
this.list = list;
}
@NonNull
@Override
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.chatroomrecyclerdesign,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder holder, int position) {
model ld = list.get(position);
holder.title.setText(ld.getName());
holder.viewers.setText(ld.getViewers());
Glide.with(getActivity()).load(ld.getImage()).into(holder.circleImageView);
String documentid = ld.getDocumentid();
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView title,viewers;
CircleImageView circleImageView;
public ViewHolder(View itemView) {
super(itemView);
title=(TextView)itemView.findViewById(R.id.chatroomtitlerecycler);
viewers=(TextView)itemView.findViewById(R.id.chatroomviewersrecycler);
circleImageView = itemView.findViewById(R.id.chatroomdisplayimagerecycler);
}
}
My model class
public static class model{
String image,name,documentid,viewers;
public model(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getDocumentid() {
return documentid;
}
public void setDocumentid(String documentid) {
this.documentid = documentid;
}
public String getViewers() {
return viewers;
}
public void setViewers(String viewers) {
this.viewers = viewers;
}
public model(String image,String name, String documentid, String viewers) {
this.image = image;
this.name = name;
this.documentid = documentid;
this.viewers = viewers;
}
}
My database structure