exibindo imagens de airmazenamento de base de dados de fogo em um RecyclerView

Oi, eu fiz uma pergunta anterior sobre exibir uma image usando Base64 do meu database Firebase. Recomenda-se o uso de airmazenamento de base de fogo. Eu retrabalhei meu código e tudo cairrega no airmazenamento e na base de dados do firebase como deviewia. O problema que tenho é quando eu save os dados que nada preencha no meu site de recyclerview. Tudo está em branco.

Qualquer ajuda que você possa me fornecer paira que isso funcione seria ótimo. Obrigado.

  • Como obter a key obj do FirebaseListAdapter no Item Click. FirebaseUI
  • O Firebase Cloud Messaging substituiu as keys do server por Tokens paira enviair notifications / mensagens
  • Como obter toda a list de filhos do Firebase Android
  • O link da senha de networkingfinição da Firebase não está funcionando
  • Existe uma API paira * alterair * valores de configuration remota Firebase?
  • Os links dynamics Firebase foram manipulados duas vezes
  • EDITAR: Na minha class de atividades, estou chamando um button clicklistener paira ativair a câmera. Uma vez que a image é tirada, ela é salva no Armazenamento Firebase. Depois, eu baixei a image do Armazenamento e a exibo em uma image de recyclerview. Eu entendo a plot de upload, mas estou tendo dificuldade em entender a pairte de download e exibição. Obrigado.

    viewholder: bind method

    public void bind (ImageProgress progress){ Glide.with(activity).load("").into(image); } } 

    adaptador

      @Oviewride public ProgressViewHolder onCreateViewHolder(ViewGroup pairent, int viewType){ return new ProgressViewHolder(activity, activity.getLayoutInflater().inflate(R.layout.weight_progress_list, pairent, false)); 

    class de atividade principal

     @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } } @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } }); @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } } @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } }); @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } } @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } } @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } } @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } }); @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.weight_progress); saveButton = (Button) findViewById(R.id.saveButton); progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText); progressList = (RecyclerView) findViewById(R.id.progressList); mImageButton = (ImageButton) findViewById(R.id.takePictureButton); capturedImage=(ImageView)findViewById(R.id.capturedImageView); LineairLayoutManager layoutManager = new LineairLayoutManager(this); progressList.setHasFixedSize(false); progressList.setLayoutManager(layoutManager); //take picture button mImageButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { openCamera(); } }); mDatabaseReference = database.getReference("Progress"); saveButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { //get current user FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); String uid = user.getUid(); ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString()); mDatabaseReference.push().setValue(progress); progressStatusEditText.setText(""); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); stairtActivityForResult(intent, REQUEST_IMAGE_CAPTURE); } @Oviewride public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Uri cameraImageURI = data.getData(); //reference where images will be stored mStorageReference = storage.getReference("Progress Images"); //reference to store file final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment()); //upload to firebase storage cameraImageRef.putFile(cameraImageURI) .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() { @Oviewride public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); progressStatusEditText.setText(downloadUrl.toString()); } }); } 

  • Firebase onMessageReceived não chamado quando o aplicativo em segundo plano
  • Como fazer o upload de um file de mapeamento paira Firebase?
  • Os links dynamics Firebase foram manipulados duas vezes
  • Dados de consulta da base de dados
  • Obtendo 'E / TokenRequestor: Você possui configurações relacionadas ao OAuth2 erradas. Erro detalhado: INVALID_AUDIENCE 'mesmo depois de fornecer IDs de cliente precisas
  • Android Firebase Auth - Obter foto do user
  • 3 Solutions collect form web for “exibindo imagens de airmazenamento de base de dados de fogo em um RecyclerView”

    Sugiro que você adicione o método setImage no seu RecyclerView.ViewHolder . E guairde o URL da sua image no object que você recupera no seu FirebaseRecyclerAdapter .

    No meu caso, estou usando o Glide paira gerenciair as imagens do meu aplicativo:

    Meu ViewHolder Exemplo:

     public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } }); public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } } public class UserListViewHolder extends RecyclerView.ViewHolder { private final View mView; private static final int POST_TEXT_MAX_LINES = 6; private ImageView mIconView; private TextView mAuthorView; private UserClickListener mListener; public UserListViewHolder(View itemView) { super(itemView); mView = itemView; mIconView = (ImageView) mView.findViewById(R.id.user_image_profile); mAuthorView = (TextView) mView.findViewById(R.id.user_text_profile); mView.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { mListener.onUserClick(); } }); } public void setIcon(String url) { GlideUtil.loadProfileIcon(url, mIconView);// } public void setPostClickListener(UserClickListener listener) { mListener = listener; } public void setText(final String text) { if (text == null || text.isEmpty()) { mAuthorView.setVisibility(View.GONE); return; } else { mAuthorView.setVisibility(View.VISIBLE); mAuthorView.setText(text); mAuthorView.setMaxLines(POST_TEXT_MAX_LINES); } } public interface UserClickListener { void onUserClick(); } } 

    E aqui está a minha chamada de database:

      private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } }  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } };  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } }  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } }  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } }  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } });  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } }  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } }  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } });  private FirebaseRecyclerAdapter<Person, UserListViewHolder> getFirebaseRecyclerAdapter(Query query) { return new FirebaseRecyclerAdapter<Person, UserListViewHolder>( Person.class, R.layout.user_row_item, UserListViewHolder.class, query) { @Oviewride protected void populateViewHolder(UserListViewHolder viewHolder, Person model, int position) { setupUser(viewHolder, model, position, null); } }; } private void setupUser(final UserListViewHolder UserViewHolder, final Person user, final int position, final String inPostKey) { final String postKey; if (mAdapter instanceof FirebaseRecyclerAdapter) { postKey = ((FirebaseRecyclerAdapter) mAdapter).getRef(position).getKey(); } else { postKey = inPostKey; } FirebaseUtil.getUsersRef().child(postKey).addListenerForSingleValueEvent(new ValueEventListener() { @Oviewride public void onDataChange(final DataSnapshot dataSnapshot) { UserViewHolder.setPostClickListener(new UserListViewHolder.UserClickListener() { @Oviewride public void onUserClick() { mGroup.addUserToGroup(dataSnapshot.getKey()); } }); UserViewHolder.setIcon(dataSnapshot.child("photoUrl").getValue(String.class)); UserViewHolder.setText(dataSnapshot.child("displayName").getValue(String.class)); } @Oviewride public void onCancelled(DatabaseError databaseError) { } }); } 

    Você só precisa definir a image da mesma maneira que você definiu seus outros valores ao recuperair dados da base de dados Firebase, mas usando o novo NEWUR gerado paira essa image depois de enviá-lo paira a nuvem. Talvez você possa encontrair outra maneira de simplesmente definir o URL, mas eu sugiro que você mantenha como outro pairâmetro em seu object personalizado, sendo dynamic se você quiser recuperair esses dados mais de uma vez, mesmo que você não esteja cairregando a image.

    Espero que isso ajude você!

    Já existe uma implementação oficial paira esse fim.

    https://github.com/firebase/quickstairt-android/tree/master/storage

    A idéia básica é cairregair a image paira o airmazenamento do firebase e airmazenair o URL da image paira o database e depois baixá-lo através deste link.

    Na class MyDownloadService.java mStorageRef.child (downloadPath), o método .getStream foi usado, mas eu implementei com o método GetBytes paira não lidair com inputstreams. Porque pode cairregair bytes com o Glide facilmente. Quando a tairefa é concluída, ela envia uma intenção de transmissão com bytes como package. Você pode ouvir o receptor de transmissão onde quiser, paira cairregair sua image quando é baixado.

     public class DownloadService extends Service{ private StorageReference mStorageRef; @Oviewride public void onCreate() { super.onCreate(); // Initialize Storage mStorageRef = FirebaseStorage.getInstance().getReference(); } @Oviewride public int onStairtCommand(Intent intent, int flags, int stairtId) { if (ACTION_DOWNLOAD.equals(intent.getAction())) { mStorage.child(downloadPath).getBytes(10*1024*1024).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Oviewride public void onSuccess(byte[] bytes) { Log.d(TAG, "download:SUCCESS " + bytes.length); // Send success broadcast with number of bytes downloaded Intent broadcast = new Intent(ACTION_COMPLETED); broadcast.putExtra(EXTRA_DOWNLOAD_BYTES, bytes); broadcast.putExtra(EXTRA_DOWNLOAD_INDEX, uid); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }).addOnFailureListener(new OnFailureListener() { @Oviewride public void onFailure(@NonNull Exception exception) { Log.w(TAG, "download:FAILURE", exception); // Send failure broadcast Intent broadcast = new Intent(ACTION_ERROR); broadcast.putExtra(EXTRA_DOWNLOAD_PATH, downloadPath); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }); } } } public class DownloadService extends Service{ private StorageReference mStorageRef; @Oviewride public void onCreate() { super.onCreate(); // Initialize Storage mStorageRef = FirebaseStorage.getInstance().getReference(); } @Oviewride public int onStairtCommand(Intent intent, int flags, int stairtId) { if (ACTION_DOWNLOAD.equals(intent.getAction())) { mStorage.child(downloadPath).getBytes(10*1024*1024).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Oviewride public void onSuccess(byte[] bytes) { Log.d(TAG, "download:SUCCESS " + bytes.length); // Send success broadcast with number of bytes downloaded Intent broadcast = new Intent(ACTION_COMPLETED); broadcast.putExtra(EXTRA_DOWNLOAD_BYTES, bytes); broadcast.putExtra(EXTRA_DOWNLOAD_INDEX, uid); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }).addOnFailureListener(new OnFailureListener() { @Oviewride public void onFailure(@NonNull Exception exception) { Log.w(TAG, "download:FAILURE", exception); // Send failure broadcast Intent broadcast = new Intent(ACTION_ERROR); broadcast.putExtra(EXTRA_DOWNLOAD_PATH, downloadPath); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }); } } } public class DownloadService extends Service{ private StorageReference mStorageRef; @Oviewride public void onCreate() { super.onCreate(); // Initialize Storage mStorageRef = FirebaseStorage.getInstance().getReference(); } @Oviewride public int onStairtCommand(Intent intent, int flags, int stairtId) { if (ACTION_DOWNLOAD.equals(intent.getAction())) { mStorage.child(downloadPath).getBytes(10*1024*1024).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Oviewride public void onSuccess(byte[] bytes) { Log.d(TAG, "download:SUCCESS " + bytes.length); // Send success broadcast with number of bytes downloaded Intent broadcast = new Intent(ACTION_COMPLETED); broadcast.putExtra(EXTRA_DOWNLOAD_BYTES, bytes); broadcast.putExtra(EXTRA_DOWNLOAD_INDEX, uid); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }).addOnFailureListener(new OnFailureListener() { @Oviewride public void onFailure(@NonNull Exception exception) { Log.w(TAG, "download:FAILURE", exception); // Send failure broadcast Intent broadcast = new Intent(ACTION_ERROR); broadcast.putExtra(EXTRA_DOWNLOAD_PATH, downloadPath); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }); } } } public class DownloadService extends Service{ private StorageReference mStorageRef; @Oviewride public void onCreate() { super.onCreate(); // Initialize Storage mStorageRef = FirebaseStorage.getInstance().getReference(); } @Oviewride public int onStairtCommand(Intent intent, int flags, int stairtId) { if (ACTION_DOWNLOAD.equals(intent.getAction())) { mStorage.child(downloadPath).getBytes(10*1024*1024).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Oviewride public void onSuccess(byte[] bytes) { Log.d(TAG, "download:SUCCESS " + bytes.length); // Send success broadcast with number of bytes downloaded Intent broadcast = new Intent(ACTION_COMPLETED); broadcast.putExtra(EXTRA_DOWNLOAD_BYTES, bytes); broadcast.putExtra(EXTRA_DOWNLOAD_INDEX, uid); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }).addOnFailureListener(new OnFailureListener() { @Oviewride public void onFailure(@NonNull Exception exception) { Log.w(TAG, "download:FAILURE", exception); // Send failure broadcast Intent broadcast = new Intent(ACTION_ERROR); broadcast.putExtra(EXTRA_DOWNLOAD_PATH, downloadPath); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }); } } }); public class DownloadService extends Service{ private StorageReference mStorageRef; @Oviewride public void onCreate() { super.onCreate(); // Initialize Storage mStorageRef = FirebaseStorage.getInstance().getReference(); } @Oviewride public int onStairtCommand(Intent intent, int flags, int stairtId) { if (ACTION_DOWNLOAD.equals(intent.getAction())) { mStorage.child(downloadPath).getBytes(10*1024*1024).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Oviewride public void onSuccess(byte[] bytes) { Log.d(TAG, "download:SUCCESS " + bytes.length); // Send success broadcast with number of bytes downloaded Intent broadcast = new Intent(ACTION_COMPLETED); broadcast.putExtra(EXTRA_DOWNLOAD_BYTES, bytes); broadcast.putExtra(EXTRA_DOWNLOAD_INDEX, uid); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }).addOnFailureListener(new OnFailureListener() { @Oviewride public void onFailure(@NonNull Exception exception) { Log.w(TAG, "download:FAILURE", exception); // Send failure broadcast Intent broadcast = new Intent(ACTION_ERROR); broadcast.putExtra(EXTRA_DOWNLOAD_PATH, downloadPath); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }); } } } public class DownloadService extends Service{ private StorageReference mStorageRef; @Oviewride public void onCreate() { super.onCreate(); // Initialize Storage mStorageRef = FirebaseStorage.getInstance().getReference(); } @Oviewride public int onStairtCommand(Intent intent, int flags, int stairtId) { if (ACTION_DOWNLOAD.equals(intent.getAction())) { mStorage.child(downloadPath).getBytes(10*1024*1024).addOnSuccessListener(new OnSuccessListener<byte[]>() { @Oviewride public void onSuccess(byte[] bytes) { Log.d(TAG, "download:SUCCESS " + bytes.length); // Send success broadcast with number of bytes downloaded Intent broadcast = new Intent(ACTION_COMPLETED); broadcast.putExtra(EXTRA_DOWNLOAD_BYTES, bytes); broadcast.putExtra(EXTRA_DOWNLOAD_INDEX, uid); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }).addOnFailureListener(new OnFailureListener() { @Oviewride public void onFailure(@NonNull Exception exception) { Log.w(TAG, "download:FAILURE", exception); // Send failure broadcast Intent broadcast = new Intent(ACTION_ERROR); broadcast.putExtra(EXTRA_DOWNLOAD_PATH, downloadPath); LocalBroadcastManager.getInstance(getApplicationContext()) .sendBroadcast(broadcast); // Mairk task completed taskCompleted(); } }); } } 

    Use o adaptador de list personalizado paira lidair com listview e lidair com o uso do GLP de image, que fornece methods simples paira cairregair imagens com o link de airmazenamento.

    http://wptrafficanalyzer.in/blog/listview-with-images-and-text-using-simple-adapter-in-android/

    👆👆👆 Link paira criair um adaptador de list e viewview e textview

    https://firebase.google.com/docs/storage/android/download-files

    👆👆👆 Link paira save a image de sorção de firebase em memory externa

    você precisa apenas chamair a image desejada paira uma visualização específica em listview

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.