我有重构问题,因为我的代码对新版本的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。
答案 0 :(得分:0)
要获取downloadURL,您必须调用getDownloadURL()的Storage Reference Object方法。
尝试一下:
uploadTask.snapshot.ref.getDownloadURL()
.subscribe(url => console.log(url))