Получение дочерних данных последнего потомка без исключения NullPointerException - PullRequest
0 голосов
/ 24 декабря 2018

Я хочу иметь последнего ребенка в моей базе данных.Затем я хочу получить данные UserId этого потомка в строковой переменной.Но он показывает NullPointerException.

В моей базе данных есть корневой «ключ».У него есть UserId-дети, такие как 8ZkecDpTTMT9TSE1y0DdldrB3Sf1, ZOmMn1cKLbfB5r4jrd2u5I7BvaT2;у каждого есть дочерний элемент с именем UserId, который имеет свои собственные значения (т. е. у ZOmMn1cKLbfB5r4jrd2u5I7BvaT2 есть дочерний элемент UserId, который содержит ZOmMn1cKLbfB5r4jrd2u5I7BvaT2).
Я хочу получить последнего дочернего элемента (который является ZOmMn1cKLbfB5r4jrd2u5I7BvaT2) и получитьего значение от UserId.Это база данных:

enter image description here

(Корень LUQ78iCK .... - это ключ, который я использовал в базе данных. Ключ являетсястрока, которую я успешно получил с какой-то программой)

Это то, что я пытаюсь:

String userdata;

final DatabaseReference key= FirebaseDatabase.getInstance().getReference().child("Tag");

Query keyquery= key.child(Key).orderByKey().limitToLast(1);


keyquery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        userdata= dataSnapshot.child("UserId").getValue().toString();

    }

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

    }
});

У меня появляется эта ошибка:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.zub.backup, PID: 18285
                  java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
                      at com.example.zub.backup.HomeFragment$2$3$1.onDataChange(HomeFragment.java:367)
                      at com.google.firebase.database.zzp.onDataChange(Unknown Source:7)
                      at com.google.android.gms.internal.firebase_database.zzfc.zza(Unknown Source:13)
                      at com.google.android.gms.internal.firebase_database.zzgx.zzdr(Unknown Source:2)
                      at com.google.android.gms.internal.firebase_database.zzhd.run(Unknown Source:71)
                      at android.os.Handler.handleCallback(Handler.java:869)
                      at android.os.Handler.dispatchMessage(Handler.java:101)
                      at android.os.Looper.loop(Looper.java:206)
                      at android.app.ActivityThread.main(ActivityThread.java:6784)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:852)

PS- ошибка в строке

userdata = dataSnapshot.child ("UserId"). GetValue (). ToString ();

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