目前我有一个 RecyclerView 适配器类,它显示带有事件名称和主机用户图像的事件列表。我需要使用 firebase 侦听器为其个人资料图片获取正确的主机(通过使用主机的用户 ID),然后放置到每个列表项的 imageView。我试图通过调用 RecyclerView 中的 firebase 侦听器来避免获取配置文件图像,但我想不出更好的方法来获取数据。任何人都可以指导我完成这个吗?
下面是 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());
}
});
}
编辑: Firebase 结构:
用户数据