我可能遗漏了一些东西,有人能帮我指出来吗,我试图在 firebase 中循环此节点,然后获取子节点“idno”,但是当我 toast 完整的快照时,即 (snapshot.getValue(). toString()), 它返回完整的数据集,但是试图从快照中获取子对象会给出一个空指针 snapshot.child("idno").getValue().toString(),请帮我弄清楚是什么我失踪了
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();
}
});
这个theMethods.makeLongToast();是一个简单的方法,它接受一个字符串并制作一个 Toast
最佳答案
改变这一行
theMethods.makeLongToast(snapshot.child("idno").getValue().toString());
到
if (snapshot.hasChild("idno") && snapshot.child("idno") != null)
theMethods.makeLongToast(snapshot.child("idno").getValue(String.class));
关于java - 循环通过 firebase 时为空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58424742/