网址未定义。重构为新版本的angularfire,angular

时间:2018-08-14 13:34:43

标签: firebase undefined firebase-storage angularfire2 angular6

我有重构问题,因为我的代码对新版本的angular和angularfire不起作用。

错误

该行:upload.url = uploadTask.snapshot.downloadURL;未定义。

代码

uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED,
  // three observers
  // 1.) state_changed observer
  (snapshot) => {
    // upload in progress
    upload.progress = (uploadTask.snapshot.bytesTransferred / uploadTask.snapshot.totalBytes) * 100;
    console.log(upload.progress);
  },
  // 2.) error observer
  (error) => {
    // upload failed
    console.log(error);
  },
  // 3.) success observer
  (): any => {

    upload.url = uploadTask.snapshot.downloadURL; //?!?!UNDEFINED
    upload.name = upload.file.name;
    this.saveFileData(upload);
  }
);

问题

我尝试了不同于stackoverflow的解决方案,但是它确实起作用。大多数示例还更多地涉及如何检索图像,但我想将变量upload.url设置为一个值。

另一个问题: 我是Angle和Web的新手。将其更改为Firestore是否需要很长时间?该代码基于实时Firebase。

1 个答案:

答案 0 :(得分:0)

要获取downloadURL,您必须调用getDownloadURL()Storage Reference Object方法。

尝试一下:

uploadTask.snapshot.ref.getDownloadURL()
    .subscribe(url => console.log(url))