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

(Корень 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 ();