Trying to Delete messages in a chatting application. There are 2 ways, 1) Delete for Me and 2) Delete for Everyone. But I'm not able to perform any of those as I'm facing an error in Firebase database which causes the app to crash.
I'm getting this ERROR :
Process: com.example.flashchat, PID: 23248
java.lang.NullPointerException: Can't pass null for argument 'pathString' in child() at com.google.firebase.database.DatabaseReference.child(DatabaseReference.java:96)at com.example.flashchat.Adapters.MessagesAdapter.lambda$onBindViewHolder$0$MessagesAdapter(MessagesAdapter.java:110)
MessagesAdapter.java:
viewHolder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
View view = LayoutInflater.from(context).inflate(R.layout.delete_dialog, null);
DeleteDialogBinding binding = DeleteDialogBinding.bind(view);
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle("Delete Message")
.setView(binding.getRoot())
.create();
binding.everyone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
message.setMessage("This message is removed.");
message.setFeeling(-1);
FirebaseDatabase.getInstance().getReference()
.child("chats")
.child(senderRoom)
.child("messages")
.child(message.getMessageId()).setValue(message);
FirebaseDatabase.getInstance().getReference()
.child("chats")
.child(receiverRoom)
.child("messages")
.child(message.getMessageId()).setValue(message);
dialog.dismiss();
}
});
binding.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseDatabase.getInstance().getReference()
.child("chats")
.child(senderRoom)
.child("messages")
.child(message.getMessageId()).setValue(null);
dialog.dismiss();
}
});
binding.cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
return false;
}
});