Проблема с FirebaseRecyclerAdapter, on a null object reference

193
11 апреля 2019, 22:30

Отображение из БД Firebase работает нормально, но когда пытаюсь удалить элемент из базы приложение вылетает, хотя удаление происходит. Пишет on a null object reference в строке String postDescription = dataSnapshot.child("desc").getValue().toString(); Вот мой код:

public class PostFragment extends Fragment {
private RecyclerView recyclerPost;
private DatabaseReference postReference;
private View view;
private LinearLayoutManager layoutManager;
public PostFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_post, container, false);
    recyclerPost = view.findViewById(R.id.recycler_post);
    postReference = FirebaseDatabase.getInstance().getReference().child("Posts");
    postReference.keepSynced(true);
    layoutManager = new LinearLayoutManager(getContext());
    layoutManager.setReverseLayout(true);
    layoutManager.setStackFromEnd(true);
    recyclerPost.setHasFixedSize(true);
    recyclerPost.setLayoutManager(layoutManager);
    return view;
}
@Override
public void onStart() {
    super.onStart();
    Query query = postReference.orderByChild("timestamp");
    FirebaseRecyclerOptions<Posts> options =
            new FirebaseRecyclerOptions.Builder<Posts>()
                    .setQuery(query, Posts.class)
                    .build();
    FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Posts, PostViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull final PostViewHolder holder, int position, @NonNull final Posts model) {
            final String postId = getRef(position).getKey();
            postReference.child(postId).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    String postDescription = dataSnapshot.child("desc").getValue().toString();
                    holder.postDesc.setText(postDescription);                   
                }
                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {
                }
            });
            holder.delBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    postReference.child(postId).removeValue();
                }
            });

        }
        @NonNull
        @Override
        public PostViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int position) {
            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.blog_item, viewGroup, false);
            return new PostViewHolder(view);
        }
    };
    adapter.startListening();
    recyclerPost.setAdapter(adapter);
}
public class PostViewHolder extends RecyclerView.ViewHolder {
    private TextView postDesc;
    private Button delBtn;
    private View view;
    public PostViewHolder(@NonNull View itemView) {
        super(itemView);
        view = itemView;
        postDesc = (TextView) view.findViewById(R.id.post_description); 
        delBtn = (Button) view.findViewById(R.id.del_post_btn);
    }
}
}

Подскажите пожалуйста решение данной проблемы.

READ ALSO
Алгоритм Дейкстры на Java NllPointerException

Алгоритм Дейкстры на Java NllPointerException

Пытаюсь реализовать алгоритм Дейкстры для нахождения кратчайшего пути во взвешенном графе на java, при запуске пишет NullPointerException на 54 строкеТам...

268
Как работает приведенный код [закрыт]

Как работает приведенный код [закрыт]

не могу понять как работает алгоритм считыванияНе понятно именно это :

246
PriorityQueue Java не работает - не работает сортировка

PriorityQueue Java не работает - не работает сортировка

У меня почему-то не работает Priority Queue А именно - я задаю comparator и начинаю вставлять элементы - а они вставляются не по порядку :( Судя по гуглу...

230
Таг form из Spring выдает исключение

Таг form из Spring выдает исключение

При попытке использовать элемент <springform:select ("http://wwwspringframework

228