Получение ссылки на путь к файлу из подписки и сохранение ее в базе данных Firebase - PullRequest
1 голос
/ 11 октября 2019

Я запускаю этот скрипт для загрузки своего изображения при отправке формы

updateUser(user: User, privateUser: PrivateUser, dob) {
  //store img in storage
  if(this.file){
  var path = `users/${this.userID}/${this.file.name}`
  var ref = this.storage.ref(path);
  this.storage.upload(path, this.file);

    this.downloadURL = ref.getDownloadURL();
    this.refURL =this.downloadURL.subscribe(url => console.log(url) );
    console.log(this.refURL);

  }
}

и пытаюсь сохранить URL-адрес загрузки для своей базы данных в качестве ориентира. в этот момент консоль распечатывает то, что я хочу из этой строки this.refURL =this.downloadURL.subscribe(url => console.log(url) );, однако console.log(this.refURL); возвращает мне подписчика. Как мне получить информацию о том, чтобы я мог сохранить значение URL в базе данных?

1 Ответ

1 голос
/ 11 октября 2019

Подписка на ваш наблюдаемый вернет подписку, и именно так работает наблюдаемый, вы подписываетесь на них для прослушивания изменений и получения значения, поэтому выполняйте действие подписки

this.downloadURL.subscribe(url => {
this.refURL=url;//or some other action here
})

Или преобразуйте в promise иawait для ответа

async updateUser(user: User, privateUser: PrivateUser, dob) {
  //store img in storage
  if(this.file){
  var path = `users/${this.userID}/${this.file.name}`
  var ref = this.storage.ref(path);
  this.storage.upload(path, this.file);

    this.downloadURL = ref.getDownloadURL();
    this.refURL= await this.downloadURL.toPromise();
    console.log(this.refURL);

  }
}

демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...