У меня такой же код, как и у вас, но мой по-прежнему вызывает функцию onComplete.
Я думаю, что проблема в вашем continueWithTask, в этой строке:
return firebaseStorage.child("Display Pictures").child(UId).getDownloadUrl();
Когда вы это делаете, firebaseStorage.child () создаст новый экземпляр StorageReference.И, возможно, причина этого неожиданного результата.
Попробуйте следовать примеру документации:
final StorageReference ref = firebaseStorage.child("Display Pictures").child(UId);
UploadTask uploadTask = ref.putFile(imageURI)
Task<Uri> urlTask = uploadTask
.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();
}
// Continue with the task to get the download URL
return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
} else {
// Handle failures
// ...
}
}
});