您好,我正在尝试从实时Firebase字段检索数据,但它返回null。我检查了textView52.setText(firebaseUser.getEmail());看看它是否真的连接并且可以正常工作。问题是从数据库中恢复一个值,在这种情况下,字段“名称”可以有人帮助我吗? 难道我做错了什么? 欢迎任何帮助。
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userUid = user.getUid();
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String data = dataSnapshot.child("name").getValue(String.class);
textView52.setText(data);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
答案 0 :(得分:2)
尝试
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userUid = user.getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(userUid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String data = dataSnapshot.child("name").getValue();
textView52.setText(data);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});}
答案 1 :(得分:0)
已更新! 检查那些行
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {...}
基本上,您尝试在Users中调用另一个名为User的孩子,以非常容易理解,请在此处替换该用户的
ref.child("use_that_key_here").addListenerForSingleValueEvent(new ValueEventListener() {...}
这不是解决方案,您不能对每个键进行硬编码,但是您应该可以看到数据
尝试类似的事情:
// ref to db
DatabaseReference ref= FirebaseDatabase.getInstance();
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//debug this par and check if you can see your user
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});