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);
                 }

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...