#javascript #angular #firebase #download #google-cloud-storage
# #javascript #angular #firebase #Скачать #google-облачное хранилище
Вопрос:
Я дохожу до того, что получаю ссылку с помощью ref.getDownloadURL() , но это дает мне ссылку, по которой, если я нажму на нее, файл будет загружен. Проблема в том, что я хочу, чтобы файл можно было загружать без перехода по ссылке.
И ссылка.getDownloadURL() выдает мне массив со странными вещами, а на «i:» он выдает мне URL:
B {a: 0, i: неопределенный, c: B, b: null, f: null, …} a: 2 b: null c: null f: null g: false h: false i: «ссылка» <——
код:
var storage = firebase.storage();
var storageRef = storage.ref();
const ref = firebase.storage().refFromURL('link');
console.log("LINK", ref.getDownloadURL());
Я пытался сделать .subscribe(), который я видел в документах, но это не сработало.
Любая помощь?
Ответ №1:
getDownloadURL()
Методу необходимо обратиться к серверу, чтобы определить URL-адрес загрузки. Из-за этого он не может сразу вернуть URL-адрес, а вместо этого возвращает обещание этого URL-адреса.
Это означает, что вам await
нужно получить фактический URL:
const ref = firebase.storage().refFromURL('link');
console.log("LINK", await ref.getDownloadURL());
Если вы не можете использовать await
, вы можете использовать then()
:
const ref = firebase.storage().refFromURL('link');
ref.getDownloadURL().then(function(url) {
console.log("LINK", url);
})
Также смотрите:
- документация
Reference.getDownloadURL
- документация по загрузке данных через URL, которая содержит расширенную версию моего второго фрагмента