Reputation:
I am creating an app in android studio in which I want to add group chat functionality but the code I am using to display the message is showing error. the error is
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.DatabaseReference com.google.firebase.database.DatabaseReference.child(java.lang.String)' on a null object reference at com.e.whatsapp.GroupChatActivity.onStart(GroupChatActivity.java:69)
private DatabaseReference UsersRef, GroupNameRef, GroupMessageKeyRef;
protected void onStart() {
super.onStart();
GroupNameRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if(dataSnapshot.exists()){
DisplayMessages(dataSnapshot);
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
if(dataSnapshot.exists()){
DisplayMessages(dataSnapshot);
}
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Upvotes: 0
Views: 115
Reputation: 13129
None of the DatabaseReferences has been initialized yet
private DatabaseReference UsersRef, GroupNameRef, GroupMessageKeyRef;
You should initialize them in your onCreate()
method as
UsersRef = FirebaseDatabase.getInstance().getReference();
GroupNameRef = FirebaseDatabase.getInstance().getReference();
GroupMessageKeyRef = FirebaseDatabase.getInstance().getReference();
Note
When you use GroupNameRef.addChildEventListener...
first define the child where your reference is pointing at to listen to those values
GroupNameRef.child("groups").addChildEventListener...
or initialize it in your onCreate()
as
GroupNameRef = FirebaseDatabase.getInstance().getReference().child("groups");
Upvotes: 1