[英]How to make multiple queries to populate recyclerview in Firebase?
I am trying to retrieve some data from firebase database and populate it to recyclerview. 我正在尝试从Firebase数据库检索一些数据并将其填充到recyclerview。 The logic behind the query is to display users with opposite sex as the current user but the same hall.
查询背后的逻辑是显示与当前用户性别相反但位于同一大厅的用户。 Example if the current user is a "boy" and is in "Legon" hall, populate recyclerview with "females" in legon hall from database.
例如,如果当前用户是“ boy”并且在“ Legon”大厅中,则从数据库中在legon大厅中用“女性”填充recyclerview。
Users Database: 用户数据库:
This is what I am trying to do but is not working 这是我想做的,但没有用
@Override
protected void onStart() {
super.onStart();
final String user_id = firebaseAuth.getCurrentUser().getUid();
final User user = new User();
final String halls = user.getHalls();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
if(dataSnapshot.child("Male").hasChild(user_id)){
query = databaseReference.child("Female").orderByChild("halls").equalTo(halls);
}
else{
query = databaseReference.child("Male").orderByChild("halls").equalTo(halls);
}
}
@Override
public void onCancelled(DatabaseError databaseError){
}
});
FirebaseRecyclerAdapter<User, UserViewholder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<User, UserViewholder>(
User.class,
R.layout.users_row,
UserViewholder.class,
query
) {
@Override
protected void populateViewHolder(UserViewholder viewHolder, User model, int position) {
viewHolder.setUsername(model.getUsername());
viewHolder.setLevels(model.getLevels());
viewHolder.setDownloadUrl(getApplicationContext(), model.getDownloadUrl());
}
};
users2.setAdapter(firebaseRecyclerAdapter);
}
I think you are wrong in here 我觉得你在这里错了
final User user = new User();
final String halls = user.getHalls();
because halls
always return null 因为
halls
总是返回null
You should change it to 您应该将其更改为
User user = firebaseAuth.getCurrentUser();
final String halls = user.getHalls();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.