Не отображается список в RecyclerView

День добрый! Столкнулся с проблемой отображения списка в RecyclerView. Есть код:

NotificationFragment.java

public class NotificationFragment extends Fragment {

    private DatabaseReference p_databaseReference;
    private RecyclerView n_recycler;
    private FirebaseRecyclerAdapter adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_notification, container, false);
        n_recycler = view.findViewById(R.id.notes_list);
        n_recycler.setLayoutManager(new LinearLayoutManager(getContext()));
        p_databaseReference = FirebaseDatabase.getInstance().getReference()
                .child("notes");
        FloatingActionButton n_fab = view.findViewById(R.id.new_note_fab);
        n_fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentManager manager = getChildFragmentManager();
                CreateDialogFragment createDialogFragment = new CreateDialogFragment();
                createDialogFragment.show(manager, "create_note_dialog");
            }
        });
        return view;
    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseRecyclerOptions<CreateNote> options = new FirebaseRecyclerOptions.Builder<CreateNote>()
                .setQuery(p_databaseReference, CreateNote.class)
                .build();

        FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<CreateNote, CreateNotesViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull final CreateNotesViewHolder holder, int position, @NonNull CreateNote model) {

                Date current_date = new Date();
                DateFormat date_format = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
                final String data_text = date_format.format(current_date);
                DateFormat time_format = new SimpleDateFormat("HH-mm-ss", Locale.getDefault());
                final String time_text = time_format.format(current_date);
                final String full_time = data_text + " " + time_text;

                String key = getRef(position).getKey();
                if (key != null) {
                    p_databaseReference
                            .child(key)
                            .child(full_time)
                            .addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            String notesTheme = dataSnapshot
                                    .child("noteTheme").getValue().toString();
                            String notesText = dataSnapshot
                                    .child("noteText").getValue().toString();
                            String notesTime = dataSnapshot
                                    .child("noteTime").getValue().toString();

                            holder.note_theme.setText(notesTheme);
                            holder.note_text.setText(notesText);
                            holder.note_time.setText(notesTime);
                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {
                            //
                        }
                    });
                }
            }

            @NonNull
            @Override
            public CreateNotesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.note_list, parent, false);
                return new CreateNotesViewHolder(view);
            }
        };
        n_recycler.setAdapter(adapter);
        adapter.startListening();
    }

    public static class CreateNotesViewHolder extends RecyclerView.ViewHolder {
        TextView note_theme, note_text, note_time;

        CreateNotesViewHolder(@NonNull View itemView) {
            super(itemView);
            note_theme = itemView.findViewById(R.id.note_user_theme);
            note_text = itemView.findViewById(R.id.note_user_text);
            note_time = itemView.findViewById(R.id.note_user_time);
        }
    }
}

и

CreateDialogFragment.java

public class CreateDialogFragment extends DialogFragment {

    private EditText n_theme;
    private EditText n_text;
    private String user_name;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(Objects.requireNonNull(getActivity()));
        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.create_note_dialog, null);
        n_theme = view.findViewById(R.id.note_user_theme);
        n_text = view.findViewById(R.id.note_user_text);
        builder
                .setTitle(getString(R.string.new_note))
                .setIcon(R.drawable.ic_notifications_black_24dp)
                .setView(view)
                .setPositiveButton(getString(R.string.d_button_create), new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Date current_date = new Date();
                        DateFormat date_format = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
                        String data_text = date_format.format(current_date);
                        DateFormat time_format = new SimpleDateFormat("HH-mm-ss", Locale.getDefault());
                        String time_text = time_format.format(current_date);
                        String full_time = data_text + " " + time_text;
                        FirebaseUser f_user = FirebaseAuth.getInstance().getCurrentUser();
                        if (f_user != null) {
                            user_name = f_user.getDisplayName();
                        }
                        String theme = n_theme.getText().toString();
                        String text = n_text.getText().toString();
                        FirebaseDatabase.getInstance()
                                .getReference()
                                .child("notes")
                                .child(user_name)
                                .child(full_time)
                                .setValue(new CreateNote(theme, text));
                    }
                })
                .setNegativeButton(getString(R.string.d_button_cancel), null);
        return builder.create();
    }
}

проблема в том, что при добавлении значения в БД приложение слетает. если убрать из пути к значению full_time, приложение работает, но список отображает только одно значение и при добавлении нового, просто меняет значение старого в списке. Подскажите, что не так!?

Лог падения:

2020-05-21 13:12:28.101 3010-3010/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.plaffrie, PID: 3010
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
        at com.example.plaffrie.ui.home.NotificationFragment$2$1.onDataChange(NotificationFragment.java:84)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.1:75)
        at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.1:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.1:55)
        at android.os.Handler.handleCallback(Handler.java:888)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:213)
        at android.app.ActivityThread.main(ActivityThread.java:8178)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
2020-05-21 13:12:28.131 3010-3010/? I/Process: Sending signal. PID: 3010 SIG: 9

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