2017-10-18 26 views
0

ファイヤーベースに画像をアップロードするサービスが角2で書かれています。 コードは次のとおりです。このコードは、「firebase.storage」機能に私にエラーを与えているファイヤーベース機能がアンギュラ4で認識されていません

import {Injectable} from "@angular/core"; 
import {AngularFireDatabase} from "angularfire2/database"; 
import {FileUpload} from "../objects/file"; 
import * as firebase from 'firebase'; 
@Injectable() 
export class UploadFileService { 
    private basePath = '/uploads'; 
    constructor(private db: AngularFireDatabase) {} 
    pushFileToStorage(fileUpload: FileUpload, progress: {percentage: number}) { 
    const storageRef = firebase.storage().ref(); 
    const uploadTask = storageRef.child(`${this.basePath}/${fileUpload.file.name}`).put(fileUpload.file); 

    uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, 
     (snapshot) => { 
     // in progress 
     const snap = snapshot as firebase.storage.UploadTaskSnapshot; 
     progress.percentage = Math.round((snap.bytesTransferred/snap.totalBytes) * 100); 
     }, 
     (error) => { 
     // fail 
     console.log(error); 
     }, 
    () => { 
     // success 
     fileUpload.url = uploadTask.snapshot.downloadURL 
     fileUpload.name = fileUpload.file.name 
     this.saveFileData(fileUpload); 
     } 
    ); 
    } 

    private saveFileData(fileUpload: FileUpload) { 
    this.db.list(`${this.basePath}/`).push(fileUpload); 
    } 
} 

「プロパティ記憶がfirebase静的な型に存在しません」私はこの言葉で記事を読みましたfirebase importを "declare var firebase"に変更することで修正できますが、これはうまくいきませんでした。

答えて

0
に自分のラインを変更し

:最初の行は、種類をインポート

import * as firebase from 'firebase/app'; 
import 'firebase/storage'; 

。 2つ目は、firebaseストレージをインポートするだけです。

+0

これは素晴らしい機能でした。ありがとう。 –

関連する問題