Firebase存储API触发两次

问题描述 投票:0回答:1

我正在尝试使用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;
        })
    );
firebase firebase-realtime-database rxjs firebase-storage angular-observable
1个回答
0
投票

您可以使用运算符take()

仅发射源Observable发出的第一个计数值。

返回MonoTypeOperatorFunction<T>:一个Observable,仅发出源Observable发出的第一个计数值,或者如果源发出的计数值少于计数值,则从源发出的所有值。

示例:

return this.task.snapshotChanges().pipe(
  take(1),
  map(doc => {
    console.log('me');
    return doc;
  })
)

https://www.learnrxjs.io/operators/filtering/take.html

© www.soinside.com 2019 - 2024. All rights reserved.