@angular/fireのgetDownloadURLについて

AngularFireStorageではAngularFireUploadTaskgetDownloadURL関数がdownloadを返すObservableを返します。

finalize

資料ではFinalizeを用いた実装が書かれています。でも、subscribeに値を流したいなと思いました。

Monitoring upload percentage

const filePath = 'name-your-file-path-here';  
const fileRef = this.storage.ref(filePath);  
const task = this.storage.upload(filePath, file);  

task.snapshotChanges().pipe(  
  finalize(() => this.downloadURL = fileRef.getDownloadURL() )  
)  
.subscribe()  

last

最後の値を受けった後にgetDownloadURLを実行することができます。

const filePath = 'name-your-file-path-here';  
const fileRef = this.storage.ref(filePath);  
const task = this.storage.upload(filePath, file);  

task.percentageChanges()  
  .pipe(  
    last(),  
    mergeMap(() => ref.getDownloadURL())  
  )  
  .subscribe(photoURL => {  
    console.log(photoURL);  
  });  

さいごに

ふーん。