ошибка при отображении сообщения в приложении чата в android studio - PullRequest
0 голосов
/ 01 марта 2020

Я создаю приложение в android студии, в которой я хочу добавить функциональность группового чата, но код, который я использую для отображения сообщения, показывает ошибку. ошибка:

java .lang.NullPointerException: попытка вызвать виртуальный метод 'com.google.firebase.database.DatabaseReference com.google.firebase.database.DatabaseReference.child (java .lang.String) 'для пустой ссылки на объект 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) {

            }
        });
    }

1 Ответ

1 голос
/ 01 марта 2020

Ни одна из DatabaseReferences еще не была инициализирована

private DatabaseReference UsersRef, GroupNameRef, GroupMessageKeyRef;

Вы должны инициализировать их в вашем onCreate() методе как

UsersRef = FirebaseDatabase.getInstance().getReference();
GroupNameRef = FirebaseDatabase.getInstance().getReference();
GroupMessageKeyRef = FirebaseDatabase.getInstance().getReference();

Примечание

Когда вы используете GroupNameRef.addChildEventListener..., сначала определите ребенка, на которого указывает ваша ссылка, чтобы прослушать эти значения

GroupNameRef.child("groups").addChildEventListener...

или инициализируйте его в вашем onCreate() как

GroupNameRef = FirebaseDatabase.getInstance().getReference().child("groups");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...