Обнаружить, когда загружается загрузка AngularFire2 - angular


1

Я переношу сайт из Углового 4 стека в новый Угловой 6 и AngularFire 2. По-видимому, в методах AngularFire 2 было несколько изменений.

У меня есть следующий код:

let uploadTask = storageRef.child(sitemap.xml).put(sitemapBlob, metaData);

Я хотел бы .on(firebase.storage.TaskEvent.STATE_CHANGED когда загрузка завершена, и появляется .on(firebase.storage.TaskEvent.STATE_CHANGED функциональность, которую я использовал в старой версии, больше не существует.

Как определить, когда загрузка завершена?

Источник
  •  43
  •  4
  • 4 мар 2020 2020-03-04 06:08:51

4 ответа

0

Согласно документации, вы должны сделать что-то вроде этого:

const uploadTask = storageRef.child(sitemap.xml).put(sitemapBlob, metaData);    

uploadTask.snapshotChanges().pipe(
  filter(task => task.state === firebase.storage.TaskState.SUCCESS)
).subscribe(() => {
  // upload successful
});
  • 4 мар 2020 2020-03-04 06:08:52
0

Согласно документации, вы должны сделать что-то вроде этого:

const uploadTask = storageRef.child(sitemap.xml).put(sitemapBlob, metaData);    

uploadTask.snapshotChanges().pipe(
  filter(task => task.state === firebase.storage.TaskState.SUCCESS)
).subscribe(() => {
  // upload successful
});
  • 4 мар 2020 2020-03-04 06:08:52
2

ИЗМЕНИТЬ 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

  • 4 мар 2020 2020-03-04 06:08:52
2

ИЗМЕНИТЬ 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

  • 4 мар 2020 2020-03-04 06:08:52