Вы должны подписаться на this.downloadURL Observable, чтобы получить строку URL.«Асинхронный» канал в HTML в основном делает то же самое.Подписка и обновление значения, как только значение будет отправлено.
Но вы должны убедиться, что this.downloadRef не является нулевым.Так что в вашем примере кода это должно войти в функцию финализации.
task.snapshotChanges().pipe(
finalize(() => {
this.downloadURL = fileRef.getDownloadURL();
this.downloadURL.subscribe(url => console.log(url) );
})
)
Но я не уверен, является ли финализация правильной функцией в любом случае.Этот код работает только в том случае, если snapshotChanges Observable завершается или выдает ошибки после первой передачи.Но мне нужно больше информации об истории вопроса для более подробного ответа.