我想知道如何从密钥列表中获取一个数据
我知道钥匙
但是我只想从保存的数据中获取
我不明白为什么它为空
值“ petcode”中的已保存键
这就是我要获取的数据宠物名
reference = FirebaseDatabase.getInstance().getReference().child("Pets").child(firebaseUser.getUid()).child(petcode);
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
petname = String.valueOf(dataSnapshot.child("petname"));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
但是当我看到日志时 petname值为null 我如何从中获取数据?
答案 0 :(得分:1)
尝试:-
ref.child("-LiCZpsymgNgtNcCinpHR5").child("petname").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
try {
if (snapshot.getValue() != null) {
try {
Log.e("TAG", "" + snapshot.getValue()); // your name values you will get here
} catch (Exception e) {
e.printStackTrace();
}
} else {
Log.e("TAG", " it's null.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("onCancelled", " cancelled");
}
});
答案 1 :(得分:0)
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Pets").child(firebaseUser.getUid()).child(petcode).child("petname");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String petname = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
conformDialog.setMessage("Something bad happened!, try again");
conformDialog.setCancelable(true);
conformDialog.setCanceledOnTouchOutside(true);
}
});
并且不要对单个事件使用 addValueEventListener ,它将永久监视