-1

I'm attempting to view database information onto my android app using the FirebaseRecyclerAdapter but where I'm expecting the populateViewHolder method I'm getting two others popping up. The code is below:

FirebaseRecyclerAdapter<NoteModel, NoteViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<NoteModel, NoteViewHolder>(

                    NoteModel.class,
                    R.layout.single_note_layout,
                    NoteViewHolder.class,
                    fNotesDatabase

            ) {
                @Override
                public NoteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                    return null;
                }

                @Override
                protected void onBindViewHolder(@NonNull NoteViewHolder holder, int position, @NonNull NoteModel model) {

                }
            };

}

public NoteViewHolder and protected void onBindViewHolder were not expected as in the past after using FirebaseReccylerAdapater these two haven't appeared. I was expecting:

protected void populateViewHolder ( NoteViewHolder viewHolder, NoteModel model, int position) {
}

Anyone have any ideas why this is no longer available? I'm not sure how to go about completing the code as I've not seen it like this before. I need to add....

String noteId = getRef(position).getKey();

....but I don't know where.

Thanks in advance.

SUPERCILEX
  • 3,929
  • 4
  • 32
  • 61
emulus
  • 77
  • 1
  • 9

1 Answers1

2

The FirebaseUI migration guide is a good place to start. Essentially, you'll want to do something like this:

FirebaseRecyclerOptions<NoteModel> options = new FirebaseRecyclerOptions.Builder<>()
        .setQuery(fNotesDatabase, NoteModel.class)
        .build();

FirebaseRecyclerAdapter<NoteModel, NoteViewHolder> firebaseRecyclerAdapter =
        new FirebaseRecyclerAdapter<NoteModel, NoteViewHolder>(options) {
            @Override
            public NoteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return new NoteViewHolder(LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.single_note_layout, parent, false));
            }

            @Override
            protected void onBindViewHolder(@NonNull NoteViewHolder holder,
                                            int position,
                                            @NonNull NoteModel model) {
                String key = getSnapshots().getSnapshot(position).getKey();
                holder.bind(...);
            }
        };
SUPERCILEX
  • 3,929
  • 4
  • 32
  • 61