Ниже приведен мой текущий скриншот просмотра recyler ... я получаю данные о состоянии пребывания по всем 8 узлам, все нормально, когда я ищу одного пользователя, но также добавляю в список данных пользователя данные о состоянии по умолчанию, которые я не хочу.
Моя база данных Firebase имеет следующую структуру:
![My Firebase DataBase Structure](https://i.stack.imgur.com/FLMI1.png)
Мне нужен только один пользователь "staydetails". Вместо этого в моем адаптере утилизатора я получаю все пользовательские данные.
Когда я добавляю данные о нескольких пользователях и их комнатах при поиске одного пользователя, это дает мне все данные о пользователях в адаптер. Вот мое представление рециркулятора MainActivity с использованием адаптера и базы данных. Заранее спасибо
final String userformno = mobileorformnosearch.getText().toString().trim();
globalmobileno = userformno;
if (userformno.trim().length() == 10) {
list.clear();
PassDataRef = FirebaseDatabase.getInstance().getReference().child("Passanger");
PassDataRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
if (dataSnapshot.hasChild(userformno)) {
// run some code
//MobileNoDataWise
UserDataRegistration user = dataSnapshot.child(userformno).getValue(UserDataRegistration.class);
YatriName.setText(user.getUsername());
YatriAge.setText(user.getAge());
YatriCity.setText(user.getCity());
Yatriphonenumber.setText(user.getMobileno());
YatriformNo.setText(user.getFormno());
YatriCoachNo.setText(user.getCoachno());
YatriSeatNo.setText(user.getSeatno());
YatriBearth.setText(user.getBearth());
YatriBusno22.setText(user.getBustwono());
YatriBusSeatNo22.setText(user.getBustwoseatno());
YatriBusno32.setText(user.getBusthreeno());
YatriBusSeatNo32.setText(user.getBusthreeseatno());
YatriPhotoUri.setText(user.getProfilephoto());
YatriGender.setText(user.getGender());
YatriMBusno.setText(user.getMbusno());
YatriMBusSeatno.setText(user.getMseatno());
// String url ="https://firebasestorage.googleapis.com/v0/b/uttammangal-ad8b8.appspot.com/o/profilepic%2F223.jpg?alt=media&token=703bcc8f-c2c3-4beb-bffc-40e52daa572d";// user.getProfilephoto();
String Url = user.getProfilephoto();
if (Url != null) {
Picasso
.get()
.load(Url)
.resize(200, 200) // resizes the image to these dimensions (in pixel)
.centerCrop()
.into(YatriImageView);
// Glide.with(getApplicationContext()).load(Url).into(YatriImageView);
} else {
Toast.makeText(MainActivity.this, "NO Image Found!!", Toast.LENGTH_LONG).show();
}
RecycleDataRef = FirebaseDatabase.getInstance().getReference("Passanger");
list.clear();
Query qry = RecycleDataRef.child(userformno).child("StayDetails");
qry.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot1) {
for (DataSnapshot dataSnapshot2 : dataSnapshot1.getChildren()) {
//UserDataRegistration user = dataSnapshot.child(userformno).getValue(UserDataRegistration.class);
UserDataRetrieve u = dataSnapshot2.getValue(UserDataRetrieve.class);
//UserDataRetrieve u = dataSnapshot1.getValue(UserDataRetrieve.class);
list.add(u);
}
adapter = new MyAdapter(MainActivity.this, list);
recyclerView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
} else {
Toast toast = Toast.makeText(MainActivity.this, "No Record Found!!!!!", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
break;
}
}//ForloopClosing
return;
} //Main DataSnapshot Profile Data closing
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(MainActivity.this, "Please Enter Valid MobileNo!!", Toast.LENGTH_LONG).show();
}
}); //addvaluelistner main profile Data Closing
//} //Query node equals closing
} else {
Toast.makeText(MainActivity.this, "Please Enter 10 Digit MobileNo!!", Toast.LENGTH_LONG).show();
}
} //OnClick Closing