Angularfire2 Ошибка «Свойство» downloadURL не существует для типа «AngularFireUploadTask». » - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь создать функцию загрузки в моем приложении Angular Firebase / Firestore.Я использую этот учебник:

https://angularfirebase.com/lessons/firebase-storage-with-angularfire-dropzone-file-uploader/

И получаю это сообщение об ошибке от линтера Атома:

Property 'downloadURL' does not exist on type 'AngularFireUploadTask'.

Соответствующие части из моегоfile-upload.component.ts ниже.Смотрите код с меткой ERROR HERE.

import { Component, OnInit } from '@angular/core';
import { AngularFireStorage, AngularFireUploadTask } from 'angularfire2/storage';
import { AngularFirestore} from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';

@Component({
  selector: 'app-file-upload',
  templateUrl: './file-upload.component.html',
  styleUrls: ['./file-upload.component.css']
})

export class FileUploadComponent implements OnInit {

  // Main Task
  task: AngularFireUploadTask;


  // download URL
  downloadURL: Observable<string>;

  // state for dropzone CSS toggling
  isHovering: boolean;

  constructor(private storage: AngularFireStorage, private db: AngularFirestore) { }

  startUpload(event: FileList) {
    //the file object
    const file = event.item(0)

    ...

    // the storage path
    const path = `test/${new Date().getTime()}_${file.name}`;

    // The main task
    this.task = this.storage.upload(path, file, {customMetadata})

    // ERROR HERE 
    this.downloadURL = this.task.downloadURL();
  }

  ngOnInit() {
  }

}

1 Ответ

0 голосов
/ 31 мая 2018

Начиная с Firebase 5.0, в задаче загрузки больше нет downloadUrl.Мы отразили это изменение в AngularFire.Вы должны получить URL из ссылки.

import { storage } from 'firebase/storage';

...

const ref = this.storage.ref(path);
this.task = ref.put(file, {customMetadata})

this.downloadURL = this.task.snapshotChanges().pipe(
  filter(snap => snap.state === storage.TaskState.SUCCESS)
  switchMap(() => ref.getDownloadURL())
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...