0

i'm trying to get data from firebase and put it in the class and show it in a recyclerview but after i retrieve the data i get the data by firebaserecyclerpoption and firebaserecycleradapter, the adapter stills empty `i don;t know where is the problem , help please

protected void onStart() {
    super.onStart();
    mAuth=FirebaseAuth.getInstance();
    FirebaseUser mUser = mAuth.getCurrentUser();
    String uId = mUser.getUid();
    Query query = FirebaseDatabase.getInstance().getReference().child("Shopping List").child(uId);
    FirebaseRecyclerOptions<Data> options  = new FirebaseRecyclerOptions.Builder<Data>().setQuery(query ,Data.class).build();
    FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Data, MyViewHolder>(options) {
        @Override
        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            // Create a new instance of the ViewHolder, in this case we are using a custom
            // layout called R.layout.message for each item
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.item_data, parent, false);

            return new MyViewHolder(view);
        }
        @Override
        protected void onBindViewHolder(@NonNull MyViewHolder holder, int position, @NonNull Data model) {
            holder.setDate(model.getDate());
            holder.setType(model.getType());
            holder.setNote(model.getNote());
            holder.setAmount(model.getAmount());
        }
    };
    recyclerView.setAdapter(adapter);
}

 public static class MyViewHolder extends RecyclerView.ViewHolder {
    View myview ;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        myview=itemView;
    }

    public void setType (String type){
        TextView mType = myview.findViewById(R.id.type);
        mType.setText(type);
    }
    public void setNote (String note){
        TextView mNote = myview.findViewById(R.id.note);
        mNote.setText(note);
    }
    public void setDate (String date){
        TextView mNote = myview.findViewById(R.id.date);
        mNote.setText(date);
    }
    public void setAmount (int amount){
        TextView mNote = myview.findViewById(R.id.amount);
        String stam = String.valueOf(amount);
        mNote.setText(stam);
    }
}
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
  • Are you calling `startListening` anywhere? Without that, the adapter will indeed not start listening for data from the database. Also see https://stackoverflow.com/questions/47228262/firebaselistadapter-not-pushing-individual-items-for-chat-app-firebase-ui-3-1/47228433#47228433 – Frank van Puffelen Jan 07 '20 at 23:13
  • @FrankvanPuffelen Worked , Thanx so much sir – Mahmoud Nasr Jan 08 '20 at 01:02

0 Answers0