Как загрузить файл из хранилища firebase автоматически, а не с URL-адресом — Javascript

#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);
})
 

Также смотрите: