Crear Login con Firebase y Ionic 5, Autenticacion con Correo Electronico
Login hecho con Ionic y autenticacion mediante Firebase
Vamos a detallar los pasos para crear este login y todo lo que necesitas
Requerimentos
- Un editor de codigo por ejemplo Visual Studio Code
- Un navegador instalado
- Node js,Ionic,Angular
- Una cuenta de google
Pasos
- Crearemos en Firebase un Proyecto del tipo web y en nuestra maquina un proyecto de Ionic, en este caso un proyecto en blanco
-
En ajustes del Proyecto, Guardaremos las variables que nos da Firebase que
se obtinene en nuestro proyecto de Firebase en los ajustes de la consola
en sdk snippet
firebaseConfig = {
apiKey: "AIzaSyBvWAwkse4Vh_AIzaSyBvWAwkse4Vh",
authDomain: "AIza_AIzaSyBvWAwkse4Vh",
databaseURL: "https://aswc-ff66a4.firebaseio.com",
projectId: "a-ff66a4",
storageBucket: "a-ff66a4.appspot.com",
messagingSenderId: "a-ff66a422",
appId: "1:a-jjjjff66a4:web:a-ff66a4a-ff66a4",
measurementId: "G-a-ff66a4"
}; -
Copia estos datos y proyecto en enviorement crearemos una constante que
guarde estos datos y en ambos enviorement de nuestro Proyecto de Ionic en
la carpeta src app enviorement
export const firebaseConfig = {
apiKey: "AIzaSyBvWAwkse4Vh_AIzaSyBvWAwkse4Vh",
authDomain: "AIza_AIzaSyBvWAwkse4Vh",
databaseURL: "https://aswc-ff66a4.firebaseio.com",
projectId: "a-ff66a4",
storageBucket: "a-ff66a4.appspot.com",
messagingSenderId: "a-ff66a422",
appId: "1:a-jjjjff66a4:web:a-ff66a4a-ff66a4",
measurementId: "G-a-ff66a4"} -
Ahora instalaremos el paquete desde nuestra consola en la ruta del
proyecto de Ionic o si tienen VS code abrir terminal y mientras se instala
crearemos el diseño:
npm install firebase @angular/fire --save
- En src/app/home/home.html agregaremos el diseño de nuestra app en este caso el login
-
Ya tenemos el npm y nuestro login con diseño ahora recuerdas el
enviorement lo vamos a importar en nuestro app.module.ts junto al npm que
instalamos
import{ firebaseConfig} from '../environments/environment';
import { AngularFireModule } from '@angular/fire';
import {AngularFireAuthModule} from '@angular/fire/auth';
-
Y ahora vamos a inicializar nuestra app con los parametros de
configuracion de la app en el NGModule
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,AngularFireModule.initializeApp(firebaseConfig),AngularFireAuthModule],
-
Con esto ya tenemos Firebase en nuestro proyecto y ahora vamos a abrir la
consola para manejar los servicios y proveedores de datos
ionic generate service servicios/auth
-
Nos crea una carpeta y archivo abrimos el archivo y importamos
import {AngularFireAuth} from'@angular/fire/auth'; -
En el constructor creamos un parametro privado de nombre AFauthy del tipo
AngularFireAuth
constructor(private AFauth: AngularFireAuth) { } -
Ahora en la clase del seervicio creamos las funciones, la primera sera de
Login
login(email:string,password:string){ this.AFauth.signInWithEmailAndPassword(email,password).then(res=>{ console.log("Resultado:"+res); }).catch(err=>console.log("Error:"+err)) }
-
Ahora nos dirigimos a home.ts y agregamos el servicio al login
importandolo
import{AuthService} from'../servicios/auth.service';
-
Y importamos a nuestro constructor del home.ts un valor privado de nombre
authservice del tipo AuthService y con esto tenemos acceso a todos los
metodos del servicio
constructor(private authservice: AuthService) {}
-
Y creamos en el home.ts la funcion para el boton Entrar y las variables
email y password
email:string;
password:string;
constructor(private authservice: AuthService) {}
onsubmitlogin(){
this.authservice.login(this.email,this.password); } - En el home.html llamamos a esta funcion
-
Y en el html a cada imput le damos los valores que creamos en el home.ts
-
Nos diirigimos a Firease y en nuestro proyecto en autenticacion activamos
correo electronico y como es un login en usuarios agregamos un correo y
contraseña
-
Si todo hicimos bien en la consola nos aparecera Resultado:Object Object
-
Nuestra app cumple pero vamos a mejorarla cambiando en el servicio usando
una promesa que nos devuelve un
login(email:string,password:string){
return new Promise((resolve,rejected)=>{
this.AFauth.signInWithEmailAndPassword(email,
password).then(user => {
resolve(user);
}).catch(err => rejected(err));
});
} -
En el home.ts modificamos nuestra funcion para trabajar con la promesa y
si es res nos dirigira a una nueva pagina en este caso la llamaremos dash
import { Router}from'@angular/router'
constructor(private authservice:
AuthService,public router:Router) {}
onsubmitlogin(){
this.authservice.login(this.email,this.password).then(res=>{
this.router.navigate(['/dash'])
}).catch(err=>alert("Los datos son incorrectos o no existe el usuario")); } -
Creemos nuestra pagina dash y en ella un boton que nos diriga al home y
listo hemos acabado
ionic generate page dashen el dash.tsimport { Component, OnInit } from '@angular/core';en el dash.html
import { Router } from '@angular/router';
@Component({ selector: 'app-dash',
templateUrl: './dash.page.html',
styleUrls: ['./dash.page.scss'],
})
export class DashPage implements OnInit {
constructor(public router: Router) { }
ngOnInit() { }
sfuera(){
this.router.navigate(['/home'])
} }Salir
Comentarios
Publicar un comentario