# #android #firebase #android-recyclerview
Вопрос:
В настоящее время у меня есть класс адаптера RecyclerView, который отображает список событий с их именем события и изображением пользователя хоста. Мне нужно использовать прослушиватель firebase, чтобы получить нужный хост (используя идентификатор пользователя хоста) для изображения их профиля, а затем поместить в каждый из элементов списка Просмотр изображений. Я пытаюсь избежать получения изображения профиля, вызывая прослушиватель firebase внутри RecyclerView, но я не смог придумать лучшей идеи для получения данных. Кто-нибудь может провести меня через это?
Ниже приведен класс адаптера RecyclerView, в котором прослушиватель firebase помещается в держатель onBindViewHolder
@Override
protected void onBindViewHolder(@NonNull partyViewholder holder, int position, @NonNull Party model){
getUser.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()){
for (DataSnapshot datas : snapshot.getChildren()) {
try {
GlideApp.with(context).load(datas.child("uri").getValue(String.class))
.placeholder(R.drawable.blank_picture)
.into(holder.mUserImg);
}catch (Exception e){
Log.d("adapter", "onBindViewHolder: " e.getMessage());
}
}
}else{
GlideApp.with(context).load(R.drawable.blank_picture)
.placeholder(R.drawable.blank_picture)
.into(holder.mUserImg);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Log.w("adapter", "Failed to read value.", error.toException());
}
});
}
Отредактированный:
структура огневой базы:
Данные пользователя
Комментарии:
1. можете ли вы поделиться своей структурой базы данных ?
2. @50_Seconds_Of_Coding я только что обновил структуру, root/party.. и root/пользователи/обычные…
3. Что вы храните в RecyclerView и зачем вам нужен дополнительный слушатель?
4. Почему бы вам не собрать данные пользователя вместе с данными участника и не объединить их перед загрузкой данных в recyclerview?
5. Честно говоря, то, чего вы пытаетесь достичь, избегая одного дополнительного слушателя, — это ключ foregin и концепция joins из SQL. Но проблема с firebase в том, что они не предоставляют метод уровня API для того же самого.