Android Firebase Datasnapshot - ошибка нулевого объекта - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь проверить пользовательские данные и получаю сообщение об ошибке, сообщающее, что я передаю нулевой объект:

В классе:

FirebaseAuth auth;
FirebaseUser currentUser;
DatabaseReference ref;

в onCreate:

auth = FirebaseAuth.getInstance();
ref = FirebaseDatabase.getInstance().getReference("Users");

После того, как пользователь вошел в систему:

currentUser = auth.getCurrentUser();

А затем:

   ref.child(currentUser.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for (DataSnapshot ds : dataSnapshot.getChildren()) {
                        String isAuthorized = ds.child("authorized").getValue().toString(); //the error says this is null
                        whichActivity(isAuthorized);
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

Это моя база данных

Кто-нибудь знает как эту ошибку можно исправить? Спасибо за ответы.

1 Ответ

0 голосов
/ 17 апреля 2020

Ошибка говорит вам, что ds.child("authorized").getValue() возвращает ноль. Это может произойти, если в снимке нет дочернего элемента с именем «авторизованный». Если вы не уверены, что присутствует «санкционированный», вам следует сначала проверить его, прежде чем использовать.

DataSnapshot authorized = ds.child("authorized");
if (authorized.exists()) {
    String isAuthorized = authorized.getValue().toString();
    whichActivity(isAuthorized);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...