Не отображаются данные в RecyclerView из Firebase

Добавил RecyclerView в котором будут отображаться данные из DatabaseReference. Код составил вродебы правильно, но список почему-то не отображается. Ошибок не выдаёт, помогите разобраться в чём проблема

Данные которые находиться в Activity

    DatabaseReference db;
    FirebaseHelper helper;
    CustomAdapter2 adapter;
    RecyclerView Rec_E_test;
        Rec_E_test = findViewById(R.id.Rec_E_test);

        db = FirebaseDatabase.getInstance().getReferenceFromUrl("https://******");
        helper = new FirebaseHelper(db);

        adapter = new CustomAdapter2(this, helper.retrieve());
        Rec_E_test.setAdapter(adapter);

        db.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, String s) {
                Rec_E_test.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot dataSnapshot, String s) {

                Rec_E_test.setAdapter(adapter);
                adapter.notifyDataSetChanged();

            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

                Rec_E_test.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onChildMoved(@NonNull DataSnapshot dataSnapshot, String s) {


                Rec_E_test.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {


                Rec_E_test.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }
        });

FirebaseHelper

public class FirebaseHelper {
    DatabaseReference db;
    Boolean saved;
    ArrayList<Spacecraft> spacecrafts = new ArrayList<>();

    public FirebaseHelper(DatabaseReference db) {
        this.db = db;
    }

    public Boolean save(Spacecraft spacecraft) {
        if (spacecraft == null) {
            saved = false;
        } else {
            try {
                db.child("Spacecraft").push().setValue(spacecraft);
                saved = true;

            } catch (DatabaseException e) {
                e.printStackTrace();
                saved = false;
            }
        }

        return saved;
    }

    private void fetchData(DataSnapshot dataSnapshot) {
        Spacecraft spacecraft = dataSnapshot.getValue(Spacecraft.class);
        spacecrafts.add(spacecraft);
    }

    public ArrayList<Spacecraft> retrieve() {
        db.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                fetchData(dataSnapshot);
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
                fetchData(dataSnapshot);

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        return spacecrafts;
    }
}

Мой Adapter

public class CustomAdapter2 extends RecyclerView.Adapter<CustomAdapter2.CustomAdapter2ViewHolder> {
    public ArrayList<Spacecraft> spacecrafts;
    Context c;

    public CustomAdapter2(Context c, ArrayList<Spacecraft> spacecrafts) {
        this.c = c;
        this.spacecrafts = spacecrafts;
    }

    @NonNull
    @Override
    public CustomAdapter2ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.model, parent, false);
        return new CustomAdapter2ViewHolder(v);
    }

    public static class CustomAdapter2ViewHolder extends RecyclerView.ViewHolder {
        @SuppressLint("StaticFieldLeak")
        public ImageView image;
        public TextView headTxt, subheadTxt, detailTxt;
        public CardView card;

        public CustomAdapter2ViewHolder(View itemView) {
            super(itemView);
            image = itemView.findViewById(R.id.image);
            headTxt = itemView.findViewById(R.id.headTxt);
            subheadTxt = itemView.findViewById(R.id.subheadTxt);
            detailTxt = itemView.findViewById(R.id.detailTxt);
            card = itemView.findViewById(R.id.card);
        }
    }

    @Override
    public void onBindViewHolder(@NonNull CustomAdapter2ViewHolder holder, int position)
    {
        Spacecraft spacecraftsItem = spacecrafts.get(position);

        holder.headTxt.setText(spacecraftsItem.getHead());
        holder.subheadTxt.setText(spacecraftsItem.getSubhead());
        holder.detailTxt.setText(spacecraftsItem.getDetail());

    }

    @Override
    public int getItemCount() {return spacecrafts.size();}
}

Ответы (0 шт):