firebase - Firebase 存储 API 触发两次
问题描述
我正在尝试使用 Google Firebase 存储 API 存储我的文件,但管道被执行了两次。有什么想法让它只触发一次吗?
// def
task: AngularFireUploadTask;
storage: AngularFireStorage;
// code
this.task = this.storage.upload(path, file, { customMetadata });
return this.task.snapshotChanges().pipe(
map(doc => {
console.log('me'); // THIS IS PRINTED TWICE
return doc;
})
);
解决方案
根据文档,您可以预期管道将在上传过程中收到多个快照。随着时间的推移,这些快照中的每一个都包含有关上传状态的一些信息。
如果您只想知道上传何时完成,请从文档中的示例中获取代码,该代码会在上传完成后获取下载 URL:
task.snapshotChanges().pipe(
finalize(() => this.downloadURL = fileRef.getDownloadURL() )
)
推荐阅读
- python - 如何在 9.414 版本中使用 executemany 忽略 postgres 中的重复项?
- javascript - $ character in ReactJs
- redundancy - 在链接失败的情况下将请求重定向到其他 IP 地址
- python - TensorFlow 在集群上运行(40k 核心,500TFLOP/s 和 40k RAM)与 NVIDIA GTX 1080
- swift - 如何动态更改 PageViewController 中的背景?
- reactjs - 会话存储无法保存在 reactjs 应用程序中
- jquery - HTML5 日期时间-本地。如何只接受 Ymd
- java - 有人可以解释这些通用语法吗?
- android - Crashlytics 报告错误的行号
- r - Shiny Server - 托管其他应用程序的问题