angular - 检测AngularFire2存储上传完成的时间
问题描述
我正在将一个站点从 Angular 4 堆栈迁移到新的 Angular 6 和 AngularFire 2 堆栈。AngularFire 2 方法似乎发生了一些变化。
我有以下代码:
let uploadTask = storageRef.child('sitemap.xml').put(sitemapBlob, metaData);
我想检测上传何时完成,并且.on(firebase.storage.TaskEvent.STATE_CHANGED
我在旧版本中使用的功能似乎不再存在。
如何检测上传完成的时间?
解决方案
编辑1:
我创建了一个将文件上传到 Firestorage 并返回当前下载 URL 的示例应用程序。看一看:
https://stackblitz.com/edit/angular-firestorage-test-r2sjvz
检查上传是否完成的正确方法是使用:
// get notified when the download URL is available
uploadTask.snapshotChanges().pipe(
finalize(() => this.downloadURL = fileRef.getDownloadURL() )
)
.subscribe()
和你的html:
<a [href]="downloadURL | async">{{ downloadURL | async }}</a>
有关完整示例,请参阅官方文档:https ://github.com/angular/angularfire2/blob/master/docs/storage/storage.md#monitoring-upload-percentage
推荐阅读
- angular - Angular - 动态设置 css - ExpressionChangedAfterItHasBeenCheckedError
- asp.net-core - 授权策略 requireAuthenticatedUser 是否兼容多种形式的身份验证(cookie 和 JWT)
- php - Wordpress - 在产品页面上添加社交按钮
- angular - Angular 2 开关插座
- javascript - 从 package.json 作为脚本运行时出现 ESLint 错误
- android - 如何从 xml 中引用在 kotlin 的构造函数中定义的函数?
- ngrx - 如何使用 NgRx 8 在 NgRx Store DevTools 中调度操作?
- python - 从 python 中的 SOAP 请求复制/验证 XMLDSig
- jquery - 如何在jquery步骤usign getCurrentIndex中获取当前选项卡的值?
- reactjs - 将多个引用从子组件传递给父组件