简体   繁体   English

如何进行多个查询以在Firebase中填充recyclerview?

[英]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.

相关问题 Android - 对recyclerview的多个查询(Firebase) - Android - Multiple queries for recyclerview (Firebase) 如何使用 Firebase 数据库中的数据填充 RecyclerView - How to populate RecyclerView with data from Firebase Database 如何从我的 Firebase 实时数据库的多个节点填充我的 RecyclerView? - How can I populate my RecyclerView from multiple nodes of my Firebase Realtime Database? 如何在recyclerview中制作和填充公共字段? - How to make and populate common field in recyclerview? Firebase 通过多个查询搜索并添加到 RecyclerView Android Studio - Firebase search by multiple queries and add to RecyclerView Android Studio 使用 Firebase 数据库填充 RecyclerView - Populate RecyclerView using Firebase Database 如何在android数据绑定中使用recyclerview填充Firebase存储图像 - How to populate Firebase storage images with recyclerview in android databinding 如何使用从 firebase 存储中检索到的图像填充 Recyclerview? - How to populate Recyclerview with images retrieved from firebase storage? 如何使用Firebase和RecyclerView管理多个下载 - How to manage multiple download with Firebase and RecyclerView 我可以使用什么适配器来填充从Firestore接受多个查询的recyclerView? - What adapter can I use to populate a recyclerView that accepts multiple queries from Firestore?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM