从未从Firebase数据库中检索数据

时间:2017-03-10 09:41:15

标签: java android firebase-realtime-database

我一直在尝试通过id

从数据库中检索一个对象
UIViewController

这是我的数据库的屏幕截图 enter image description here

我不确定问题是onDataChange中的查询还是变量设置。

请注意,在User Object中,定义了所有getter和setter以及默认构造函数。

编辑***************************编辑******************* *********************** 在这里,我调用我的函数来检索用户。

public List<User> getCreatorOfCandidature(String userId)
{
    DatabaseReference database = FirebaseDatabase.getInstance().getReference();
    DatabaseReference ref = database.child("users");
    final List<User> users= new ArrayList<User>();
    Query query = ref.equalTo(userId);
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            try{
                for (DataSnapshot data : snapshot.getChildren())
                {
                    User user = data.getValue(User.class);
                    setCreateurDeLaDemande(user);
                    users.add(user);
                }
            } catch (Throwable e) {
            }
        }
        @Override public void onCancelled(DatabaseError error) { }
    });
    return users;
}
谢谢。

1 个答案:

答案 0 :(得分:0)

equalTo

不能那样工作,必须用orderBy *()

链接

检查文档 - https://firebase.google.com/docs/reference/js/firebase.database.Query

如果您正在寻找具有特定UID的用户,请尝试使用

Query query = ref.orderByChild("yourUserIdField").equalTo(UID);
query.addChildEventListener(new ...)