Skip to content

Instantly share code, notes, and snippets.

@feliperfranco
Created December 19, 2017 22:59
Show Gist options
  • Save feliperfranco/19fac5b8e77a46817fcc11bca62925b4 to your computer and use it in GitHub Desktop.
Save feliperfranco/19fac5b8e77a46817fcc11bca62925b4 to your computer and use it in GitHub Desktop.
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