这是结构: enter image description here 我想选择公司,电话和城市,其中电子邮件=已连接用户的当前电子邮件。
这是我的代码:
DatabaseReference mDatabases = FirebaseDatabase.getInstance().getReference();
Query query = mDatabases.child("Users").orderByChild("email").equalTo(FirebaseAuth.getInstance().getCurrentUser().getEmail().toString());
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
User user = dataSnapshot.getValue(User.class);
String company = user.getCompany();
String city = user.getCity);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
返回的结果为null。
当我将dataSnapshot.getValue(User.class)
更改为dataSnapshot.getValue()
时,它会返回该节点的所有值。
答案 0 :(得分:0)
您尚未指明要检索的用户。由于dataSnapshot返回用户值列表(即使列表只有1个元素),您必须指定要获取的用户:
User user = dataSnapshot.child(userId).getValue(User.class);
将userId
替换为您要检索的用户的ID(我猜当前用户!)