Мне нужно получить фотографию из базы данных Firebase, и я использую FirestoreRecyclerAdapter. У меня есть код того, как это будет сделано, если я использую адаптер RecyclerView, но я не могу понять, как его использовать с адаптером FirestoreRecycler. Я могу сделать это для обычного текста, и мне нужна небольшая помощь с добавлением кода для фотографий.
Вот как это выглядит при использовании обычного RecyclerViewAdapter. Часть в *** - это часть, которую я испытываю с трудностями в своем адаптере.
public class ImageAdapter extends
RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {
private Context mContext;
private List<Upload> mUploads;
public ImageAdapter(Context context, List<Upload> uploads) {
mContext = context;
mUploads = uploads;
}
@Override
public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(mContext).inflate(R.layout.image_item, parent, false);
return new ImageViewHolder(v);
}
@Override
public void onBindViewHolder(ImageViewHolder holder, int position) {
holder.textViewName.setText(uploadCurrent.getName());
*** Upload uploadCurrent = mUploads.get(position); ***
*** Picasso.with(mContext) ***
*** .load(uploadCurrent.getImageUrl()) ***
*** .fit() ***
*** .centerCrop() ***
*** .into(holder.imageView); ***
}
@Override
public int getItemCount() {
return mUploads.size();
}
public class ImageViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName;
public ImageView imageView;
public ImageViewHolder(View itemView) {
super(itemView);
textViewName = itemView.findViewById(R.id.text_view_name);
imageView = itemView.findViewById(R.id.image_view_upload);
}
}
}
Это мой код - я получил текст из базы данных, но не уверен, как получить фотографию.
public class FirebaseRecyclerViewAdapter extends FirestoreRecyclerAdapter<Buildings, FirebaseRecyclerViewAdapter.FirebaseRecyclerViewHolder> {
public FirebaseRecyclerViewAdapter(FirestoreRecyclerOptions<Buildings> options) {
super(options);
}
@Override
protected void onBindViewHolder(FirebaseRecyclerViewHolder holder, int position, Buildings model) {
holder.textViewName.setText(model.getName());
}
@NonNull
@Override
public FirebaseRecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.buildings_row_item, parent, false);
return new FirebaseRecyclerViewHolder(v);
}
class FirebaseRecyclerViewHolder extends RecyclerView.ViewHolder {
TextView textViewName;
public FirebaseRecyclerViewHolder(View itemView) {
super(itemView);
textViewName = itemView.findViewById(R.id.building_name);
}
}
}