Я делаю приложение для Android и пытаюсь получить DownloadURL изображения, хранящегося в моем хранилище Firebase, вот моя функция:
ФУНКЦИЯ:
if(imageUri != null){
StorageReference fileReference = storageReference.child(System.currentTimeMillis()+"."+getFileExtension(imageUri));
fileReference.putFile(imageUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>(){
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception{
if(!task.isSuccessful()){
throw task.getException();
}
return storageReference.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>(){
@Override
public void onComplete(@NonNull Task<Uri> task){
if(task.isSuccessful()){
Uri downloadUri = task.getResult();
u.setImageURL(downloadUri.toString());
Toast.makeText(TelaRegistro.this, u.getImageURL(), Toast.LENGTH_LONG).show();
}else{
u.setImageURL("Sem imagem!");
}
}
});
}else{
u.setImageURL("Sem imagem!");
}
ПРОБЛЕМА:
Проблема в том, что когда я вызываю метод в строке ниже, он приходит со значением.
Uri downloadUri = task.getResult();
u.setImageURL(downloadUri.toString());
Toast.makeText(TelaRegistro.this, u.getImageURL(), Toast.LENGTH_LONG).show();
Но когда япопытаться вызвать Get снова, он возвращает нулевое значение, как в случае со строкой ниже.
Toast.makeText(TelaRegistro.this, u.getImageURL(), Toast.LENGTH_LONG).show();
Я начинающий программист, и я пытался решить эту проблему в течение нескольких дней, яне знаю что еще делать.Не могли бы вы помочь мне?