Нулевой указатель при зацикливании через firebase - PullRequest
1 голос
/ 17 октября 2019

Я могу что-то упустить, может кто-нибудь помочь мне указать на это, я пытаюсь зациклить этот узел в firebase, а затем получить дочернее 'idno', но когда я делаю тост за полный снимок, т.е. (snapshot.getValue (). toString ()), он возвращает полный набор данных, однако попытка получить дочерний элемент из снимка как такового дает нулевой указатель snapshot.child ("idno"). getValue (). toString (), пожалуйста, помогите мне выяснить, чтопропал без вести

The Node

DatabaseReference thefarmers = FirebaseDatabase.getInstance().getReference().child("Thepath").child("Farmers");
thefarmers.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            //Get the child id
            theMethods.makeLongToast(snapshot.child("idno").getValue().toString());

        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getActivity(), databaseError.getMessage().toString(), Toast.LENGTH_SHORT).show();
    }
});

This theMethods.makeLongToast ();простой метод, который принимает строку и делает тост

Ответы [ 3 ]

0 голосов
/ 17 октября 2019

Изменить эту строку

theMethods.makeLongToast(snapshot.child("idno").getValue().toString());

на

if (snapshot.hasChild("idno") && snapshot.child("idno") != null)
    theMethods.makeLongToast(snapshot.child("idno").getValue(String.class));
0 голосов
/ 17 октября 2019

Из комментария @ Фрэнка ван Пуффелена выясняется, что первым дочерним свойством idno является idno, а не idno, это исправило его для меня.

0 голосов
/ 17 октября 2019

заменить thefarmers.addListenerForSingleValueEvent(new ValueEventListener()

на thefarmers.addValueEventListener(new ValueEventListener()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...