因此,我现在正为这个问题苦苦挣扎约三个小时.
我有这个用户类别
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);
}