Created
December 19, 2017 22:59
-
-
Save feliperfranco/19fac5b8e77a46817fcc11bca62925b4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Injectable } from '@angular/core'; | |
import { FirebaseApp } from 'angularfire2'; | |
import { AngularFireDatabase } from 'angularfire2/database'; | |
import * as firebase from 'firebase'; | |
@Injectable() | |
export class MeuService { | |
PATH = 'produtos/'; | |
PATH_IMG = 'img/'; | |
constructor(private fb: FirebaseApp, private db: AngularFireDatabase) { } | |
/** | |
* Metodo simples para upload de arquivos para o Firebase | |
* @param key Chave do objeto do Firebase em que vou vincular a URL do upload | |
* @param file Arquivo que será enviado para o Firebase Storage | |
*/ | |
uploadImg(key: string, file: File) { | |
const storageRef = this.fb.storage().ref(); | |
const uploadTask = storageRef.child(this.PATH_IMG + key).put(file); | |
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, | |
(snapshot: any) => { | |
// Aqui é o progresso do upload | |
const progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100; | |
}, | |
(error) => { | |
// Aqui é em caso de erro | |
console.log(error); | |
}, | |
() => { | |
// Aqui eu pego a URL e salvo no objeto | |
this.db.object(this.PATH + key).update({ imgUrl: uploadTask.snapshot.downloadURL }); | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment