Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Firebase中进行多个查询以填充recyclerview?_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 如何在Firebase中进行多个查询以填充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 =

我正在尝试从firebase数据库中检索一些数据,并将其填充到recyclerview。查询背后的逻辑是将异性用户显示为当前用户,但显示为同一大厅。例如,如果当前用户是“男孩”并且在“Legon”大厅中,则从数据库在Legon大厅中用“女性”填充recyclerview

用户数据库:

这是我正在尝试做的,但没有起作用

@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