我正在尝试使用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;
})
);
您可以使用运算符take()
:
仅发射源Observable发出的第一个计数值。
返回
MonoTypeOperatorFunction<T>
:一个Observable,仅发出源Observable发出的第一个计数值,或者如果源发出的计数值少于计数值,则从源发出的所有值。
示例:
return this.task.snapshotChanges().pipe(
take(1),
map(doc => {
console.log('me');
return doc;
})
)