usersRef= myRef.child("users");
usersRef.orderByChild("name").equalTo("yair").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user=new User();
user.setName(dataSnapshot.getValue(User.class).getName());
user.setEmail(dataSnapshot.getValue(User.class).getEmail());
user.setId(dataSnapshot.getValue(User.class).getId());
user.setPhone_num(dataSnapshot.getValue(User.class).getPhone_num());
我的firebase看起来像这样:
users
Y6NKciGllTgkLXlMj9YLlAFuw522
email:
"yk.yair@gmail.com"
id:
"Y6NKciGllTgkLXlMj9YLlAFuw522"
name:
"yair"
phone_num:
"050-7777151"
kfby10Wy16Rx12v7Mx0sksqUTE72
email:
"aaa"
id:
"kfby10Wy16Rx12v7Mx0sksqUTE72"
name:
"aaa"
phone_num:
"(050)7777151"
似乎用户始终保持为空; 有人可以帮忙吗?
答案 0 :(得分:0)
要解决此问题,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String email = ds.child("email").getValue(String.class);
User user = new User();
user.setEmail(email);
//and so on
Log.d("TAG", email);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
usersRef.addListenerForSingleValueEvent(eventListener);
您的输出将是:
yk.yair@gmail.com
另一种方法是更改DatabaseReference
并使用相同的代码:
DatabaseReference usersRef = rootRef.child("users").child(userId);
其中userId
是push()
方法生成的唯一ID。
希望它有所帮助。
答案 1 :(得分:0)
试试这个:
mFirebaseDatabase = FirebaseDatabase.getInstance();
mFirebaseDatabase.getReference().child("users").orderByChild("name").equalTo("yair").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() == null){
Log.i("IS NULL", "IS NULL");
} else{
User user = dataSnapshot.getValue(User.class);
Log.i("user name", user.getName());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
并确保您的数据库结构如下: enter image description here