Android Firebase数据库结合了多个查询
我想显示一个用户列表(使用RecyclerView、adapter…),该列表包含用户信息(照片、姓名、电子邮件…)以及有关该用户的评论计数,对于用户信息,我进行了firebase查询,并获得了我想要的所有信息Android Firebase数据库结合了多个查询,android,asynchronous,firebase-realtime-database,android-recyclerview,Android,Asynchronous,Firebase Realtime Database,Android Recyclerview,我想显示一个用户列表(使用RecyclerView、adapter…),该列表包含用户信息(照片、姓名、电子邮件…)以及有关该用户的评论计数,对于用户信息,我进行了firebase查询,并获得了我想要的所有信息 al = new ArrayList<>(); FirebaseDatabase.getInstance().getReference().child("Seeker").child(categorie).addValueEventListene
al = new ArrayList<>();
FirebaseDatabase.getInstance().getReference().child("Seeker").child(categorie).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// clear data before
al.clear();
for (DataSnapshot dataLoop : dataSnapshot.getChildren()) {
String getcity = dataLoop.child("City").getValue().toString().trim();
if (getcity.equalsIgnoreCase(City.trim())) {
p = new Person();
p.setName(dataLoop.child("Name").getValue(String.class));
p.setId(dataLoop.child("Id").getValue(String.class));
if (dataLoop.hasChild("urlToImage")) {
p.setUrl(dataLoop.child("urlToImage").getValue(String.class));
} else {
p.setImage(R.drawable.profile);
}
readData(new MyCallback() {
@Override
public void onCallback(String value) {
Log.d("TAG", value);
p.setComms(value);
}
}, dataLoop.child("Id").getValue(String.class));
al.add(p);
}
}
md = new MyAdaptor(MyClass.this, al);
rv.setAdapter(md);
}
我的问题是,我想为每个用户再添加一个信息,这是每个用户的审核计数,我试图在循环中进行另一个查询,但由于firebase调用是异步的
它不起作用,版面上没有显示评论的数量
下面是我的firebase数据库结构示例
-Review
-HDGFDGDGDB (user id)
-FSETTDGDG (user who made the review)
-1 : review1
-2 : review2
-Seeker
-HDGFDGDGDB (user id)
-city : "NY"
-name : "Jhon"......
为了在recyclerView中显示所有信息,组合这两个查询的最佳解决方案是什么。您尝试了哪些不起作用的方法?请编辑问题以显示代码,并解释它所做的不是您所期望的。@DougStevenson我编辑了我的问题,希望现在问题清楚了。从添加的代码中,什么东西没有按照您所期望的方式工作?p.setComms(value);不工作,此值不显示在recyclerView上,显示人员信息,但不显示此注释值。我知道问题在于firebase请求是异步的。
-Review
-HDGFDGDGDB (user id)
-FSETTDGDG (user who made the review)
-1 : review1
-2 : review2
-Seeker
-HDGFDGDGDB (user id)
-city : "NY"
-name : "Jhon"......