因此,我现在正为这个问题苦苦挣扎约三个小时.
我有这个用户类别
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中的数据库
当我调试应用程序时,dataSnapshot实际上包含了我正在寻找的对象
但是currentUser将是一个其所有字段为null的对象;
有任何想法吗?我已经很沮丧了:(
提前致谢!
解决方法:
您需要遍历dataSnapshot.getChildren(…例如
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) { User user = childSnapshot.getValue(User.class); }
总结 以上是内存溢出为你收集整理的android-dataSnapshot有对象,但getValue()将返回null全部内容,希望文章能够帮你解决android-dataSnapshot有对象,但getValue()将返回null所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)