Skip to content

Instantly share code, notes, and snippets.

@GreyHat147
Created February 28, 2018 17:38
Show Gist options
  • Save GreyHat147/bcc6c2200830b9745fd935b9779a0cc4 to your computer and use it in GitHub Desktop.
Save GreyHat147/bcc6c2200830b9745fd935b9779a0cc4 to your computer and use it in GitHub Desktop.
firebase
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import { Http } from '@angular/http';
import * as firebase from 'firebase/app';
import { Router } from '@angular/router';
import 'rxjs/Rx';
@Injectable()
export class FirebaseService {
user: Observable<firebase.User>;
constructor( private af: AngularFireAuth, private r: Router,public db: AngularFireDatabase, private http:Http ) { }
login( email: string, password: any ): Promise<any>
{
return new Promise((resolve, reject) => {
this.af.auth.signInWithEmailAndPassword( email, password )
.then(() => {
resolve();
})
.catch((error: any) => {
let messageErrorFirebase:any = {};
if( error.code )
{
switch( error.code )
{
case "auth/wrong-password":
messageErrorFirebase.code = error.code;
messageErrorFirebase.msg = "La contraseña no es la correcta!";
break;
case "auth/invalid-email":
messageErrorFirebase.code = error.code;
messageErrorFirebase.msg = "Email invalido";
break;
case "auth/user-not-found":
messageErrorFirebase.code = error.code;
messageErrorFirebase.msg = "Al parecer no existe esta cuenta!";
break;
default:
messageErrorFirebase.code = 500;
messageErrorFirebase.msg = "A ocurrido un error en el sistema.";
}
reject(messageErrorFirebase);
}
else
{
reject(error);
}
});
});
}
singUp( user: any ): Promise<any>
{
return new Promise((resolve, reject) => {
this.af.auth.createUserWithEmailAndPassword( user.email, user.password )
.then((userCreated) => {
console.log("User created",userCreated);
return this.saveUserInDatabase( userCreated.uid, user );
})
.then((userSaved) => {
if( userSaved )
{
resolve("Usuario creado en Auth y DB");
}
})
.catch((error:any) => {
let messageErrorFirebase:any = {};
if( error.code )
{
switch( error.code )
{
case "auth/email-already-in-use":
messageErrorFirebase.code = error.code;
messageErrorFirebase.msg = "Este email ya se encuentra en uso";
break;
case "auth/invalid-email":
messageErrorFirebase.code = error.code;
messageErrorFirebase.msg = "Email invalido";
break;
case "auth/weak-password":
messageErrorFirebase.code = error.code;
messageErrorFirebase.msg = "La contraseña es muy corta, por lo menos debe tener seis carateres";
break;
default:
messageErrorFirebase.code = 500;
messageErrorFirebase.msg = "A ocurrido un error en el sistema.";
}
reject(messageErrorFirebase);
}
else
{
reject(error);
}
});
});
}
saveUserInDatabase( uid: string, user:any ): Promise<any>
{
console.log(uid, user);
let productsCart: any[] = [];
return new Promise((resolve, reject) => {
this.db.database.ref('user/' + uid)
.set({
name: user.name,
lastName: user.lastName,
email: user.email,
phone: user.phone,
itemsInCart: null,
})
.then(() => {
resolve(true)
})
.catch((error) => {
reject(error);
});
});
}
logout()
{
this.af.auth.signOut();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment