Я не могу получить изображение downloadUrl из Firebase Storage (Angular / Ionic) - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь получить downloadUrl для изображения из firebase, все свойства, такие как 'timeCreated', 'fullPath', 'contentType' работают хорошо и выдвигаются правильно! но я не знаю, почему «downloadUrl» не работает !!

captureAndUpload() {
    this.dataProvider.captureImage().then(data => {
     this.dataProvider.uploadImage(data).then(res => {
        this.dataProvider.storeImageInformation(res.downloadURL);
      });

    });
  }

Поставщик данных:

storeImageInformation(downloadURL)
 {
this.db.list(`/profiles/${this.afAuth.auth.currentUser.uid}`).
push(downloadURL); 
      }

Есть мысли?!

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

THX Даг, ты прав.

Правильный код такой:

captureAndUpload() {
this.data.captureImage().then(data => {
  let upload = this.data.uploadImage(data);

  upload.then().then(res => {
    this.data.storeImageInformation(res);
  }); 
}

Провайдер данных:

uploadImage(image) {

let storageRef: AngularFireStorageReference;

let newName = `${new Date().getTime()}-${this.afAuth.auth.currentUser.uid}.png`;

storageRef = this.afStorage.ref(`/images/${this.afAuth.auth.currentUser.uid}/${newName}`);

return storageRef.putString(image, 'base64', { contentType: 'image/png'})
          .snapshotChanges().toPromise().then(_ =>
             {
              return storageRef.getDownloadURL().toPromise().then(res => {
                console.log('URL: ', res);
                return res;
              });
            }
          ) 
        }

 storeImageInformation(downloadURL) {
  return this.db.object(`/images/${this.afAuth.auth.currentUser.uid}`).update({img: downloadURL}); }
0 голосов
/ 09 ноября 2018

URL-адрес загрузки больше не доступен в непосредственных результатах загрузки. Это изменение было внесено несколько месяцев назад в клиентские SDK Firebase.

Вместо этого вам нужно будет вызвать getDownloadURL (или любой другой вариант привязки Angular для этой функции JavaScript), чтобы получить URL-адрес в качестве второго запроса после завершения загрузки.

...