Android 如何在Firebase中进行多个查询以填充recyclerview?
我正在尝试从firebase数据库中检索一些数据,并将其填充到recyclerview。查询背后的逻辑是将异性用户显示为当前用户,但显示为同一大厅。例如,如果当前用户是“男孩”并且在“Legon”大厅中,则从数据库在Legon大厅中用“女性”填充recyclerview 用户数据库: 这是我正在尝试做的,但没有起作用Android 如何在Firebase中进行多个查询以填充recyclerview?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在尝试从firebase数据库中检索一些数据,并将其填充到recyclerview。查询背后的逻辑是将异性用户显示为当前用户,但显示为同一大厅。例如,如果当前用户是“男孩”并且在“Legon”大厅中,则从数据库在Legon大厅中用“女性”填充recyclerview 用户数据库: 这是我正在尝试做的,但没有起作用 @Override protected void onStart() { super.onStart(); final String user_id =
@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);
}
@覆盖
受保护的void onStart(){
super.onStart();
最终字符串user_id=firebaseAuth.getCurrentUser().getUid();
最终用户=新用户();
最终字符串halls=user.getHalls();
databaseReference.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot)
{
if(dataSnapshot.child(“男性”).hasChild(用户id)){
query=databaseReference.child(“女性”).orderByChild(“大厅”).equalTo(大厅);
}
否则{
query=databaseReference.child(“男性”).orderByChild(“大厅”).equalTo(大厅);
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
FirebaseRecyclerAdapter FirebaseRecyclerAdapter=新的FirebaseRecyclerAdapter(
User.class,
R.layout.users\u行,
UserViewholder.class,
查询
) {
@凌驾
受保护的void populateViewHolder(UserViewholder、用户模型、int位置){
viewHolder.setUsername(model.getUsername());
viewHolder.setLevels(model.getLevels());
setDownloadUrl(getApplicationContext(),model.getDownloadUrl());
}
};
users2.setAdapter(firebaseRecyclerAdapter);
}
我认为你在这里错了
final User user = new User();
final String halls = user.getHalls();
因为halls
总是返回null
你应该把它改成
User user = firebaseAuth.getCurrentUser();
final String halls = user.getHalls();
请注意,“用户”只是我创建的包含一些信息的类,而不是..它不是“firebaseUser”@Phan Van Linh