con - firebase auth
Cómo iniciar sesión en el estado de autenticación/usuario de angularfire2 (3)
el estado de autenticación actual está disponible desde FirebaseAuth
inyectado. Puede obtener los datos de autenticación reales auth.getAuth()
Ver: https://github.com/angular/angularfire2/blob/master/src/providers/auth.ts#L99
Tengo una aplicación ionic2 y estoy usando Firebase y angularFire2. Me gustaría obtener el estado de autenticación actual y el objeto / usuario de autenticación actual de firebase usando angularFire2.
Esto es lo que funciona hasta ahora: puedo autenticar al usuario y suscribirme a FirebaseAuthState para obtener el objeto de usuario de Facebook.
constructor(platform: Platform, private auth: FirebaseAuth) {
auth.subscribe((user: FirebaseAuthState) => {
if (user) {
// I could store user in localstorage, but I''d like to see an All Firebase solution
this.rootPage = TabsPage;
} else {
this.rootPage = LoginPage;
}
});
Ahora puedo establecer localstorage aquí y almacenar en caché mi objeto de usuario para recordar el estado de autenticación. Sin embargo, tengo curiosidad por ver cómo puedo usar Firebase solo sin que implemente mi propia clave de almacenamiento local personalizada. Veo que Firebase almacena una clave de almacenamiento local propia, por lo que sabe que ha iniciado sesión.
¿Cómo puedo obtener el objeto de autenticación del código? Además, probé el ejemplo enumerado en la documentación de AngularFire2 para mostrar el estado de autenticación en la plantilla, pero eso me da un error.
import {FirebaseAuth} from ''angularfire2'';
@Component({
selector: ''auth-status'',
template: `
<div *ng-if="auth | async">You are logged in</div>
<div *ng-if="!(auth | async)">Please log in</div>
`
})
class App {
constructor (@Inject(FirebaseAuth) public auth: FirebaseAuth) {}
}
ahora para obtener la información del usuario, debe suscribirse para obtener la información de autenticación. Ex
constructor(public af: AngularFire) {
this.af.auth.subscribe(auth => console.log(auth));// user info is inside auth object
}
El objeto auth será nulo si el estado de autenticación no existe
- Importar:
import { AngularFireAuth } from ''angularfire2/auth'';
- Inject:
constructor(public afAuth: AngularFireAuth) { }
Comprobar:
this.afAuth.authState.subscribe(res => { if (res && res.uid) { console.log(''user is logged in''); } else { console.log(''user not logged in''); } });