El código completo del componente principal queda así
import { Component } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';
import { AutoUsrService } from './auto-usr.service';
import { Observable } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
items: Observable<any[]>;
constructor(db: AngularFirestore, public slAuthService:AutoUsrService) {
this.items = db.collection('items').valueChanges();
}
login() {
this.slAuthService.login();
}
logout() {
this.slAuthService.logout();
}
}
Creando la plantilla html del componente
Para definir una plantilla en base al estado del usuario se usará la directiva *ngIf de este modo si el usuario no esta logueado mostrará el botón para hacerlo.
Caso contrario si el usuario ya está logueado mostrará un botón de logout
<div *ngIf="slAuthService.afAuth.user | async as user; else showLogin">
<div class="container">
<p>Bienvenido {{ user.displayName }}</p>
<button (click)="logout()" class="btn btn-danger">Logout</button>
<ul>
<li class="text" *ngFor="let item of items | async">
{{item.name}}
</li>
</ul>
<!-- <app-login></app-login>
-->
<router-outlet></router-outlet>
</div>
</div>
<ng-template #showLogin>
<div class="container">
<div class="row">
<div class="col-md-12 col-md-offset-2">
<br>
<p>Debes Logearte para acceder al sistema.</p>
<button (click)="login()" class="btn btn-danger">Logearte con una cuenta Google</button>
<p>
<small>debes contar con una cuenta de google para poder usar el sistema</small>
</p>
</div>
</div>
</div>
</ng-template>
Una vez esté logueado aparece el botón de logout
Error en el logueo
Si al momento de loguear aparece la pantalla momentáneamente y luego desaparece debes revisar la consola
code: "auth/operation-not-allowed"
message: "The identity provider configuration is disabled."
El error anterior pasa cuando no has habilitado el método de autenticación, para hacerlo debes ir a tu consola de firebase y habilitarlo
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.