Firebase返回null值

时间:2017-08-20 03:02:53

标签: android firebase firebase-realtime-database

这是结构: 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()时,它会返回该节点的所有值。

1 个答案:

答案 0 :(得分:0)

您尚未指明要检索的用户。由于dataSnapshot返回用户值列表(即使列表只有1个元素),您必须指定要获取的用户:

User user =  dataSnapshot.child(userId).getValue(User.class);

userId替换为您要检索的用户的ID(我猜当前用户!)