微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android-dataSnapshot有对象,但getValue()将返回null

因此,我现在正为这个问题苦苦挣扎约三个小时.
我有这个用户类别

public class User {
private String user_id;
private String userName;
private long phoneNumber;

public User() {
}

public User(String user_id, String userName, long phoneNumber) {
    this.user_id = user_id;
    this.userName = userName;
    this.phoneNumber = phoneNumber;
}

我想从Firebase数据库获取此类的某些实例,我正在使用以下代码来做到这一点:
 数据库参考;

User currentUser;
DatabaseReference database = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference usersRef = database.child("users");

查询代码

Query query = usersRef.orderByChild("user_id").equalTo(user_id);
                query.addListenerForSingleValueEvent (new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                         currentUser = dataSnapshot.getValue(User.class);
}

有趣的是:这段代码实际上只工作过一次,但是我猜我做了一些更改,现在getValue()返回null.

 这是我在firebase中的数据库

enter image description here


当我调试应用程序时,dataSnapshot实际上包含了我正在寻找的对象

enter image description here

但是currentUser将是一个其所有字段为null的对象;

enter image description here

有任何想法吗?我已经很沮丧了:(
提前致谢!

解决方法:

您需要遍历dataSnapshot.getChildren(…例如

                for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
                    User user = childSnapshot.getValue(User.class);
                 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐