我一直在尝试通过id
从数据库中检索一个对象UIViewController
我不确定问题是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;
}
谢谢。
答案 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 ...)