2017-02-15 113 views
0

我试图从firebase数据库检索一些数据并将其填充到recyclerview。查询背后的逻辑是显示异性用户作为当前用户,但同一个大厅。例如,如果当前用户是“男孩”并且在“Legon”大厅中,则从数据库填充legon大厅中的“女性”的回收站视图。如何使多个查询在Firebase中填充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); 

     } 

回答

0

我觉得你在这里是错误的

final User user = new User(); 
final String halls = user.getHalls(); 

因为halls总回报null

你应该改变它为

User user = firebaseAuth.getCurrentUser(); 
final String halls = user.getHalls(); 
+0

请“用户”只是我创建的类包含一些信息没有..它不是“firebaseUser”@Phan Van Linh –