LoginProvider Class
export class LoginProvider {
public currentUser: any;
loginSucessEventEmitter: EventEmitter;
loginErrorEventEmitter: EventEmitter;
logoutEventEmitter: EventEmitter;
constructor(public http: Http,
public ngZone: NgZone,
public toastCtrl: ToastController,
public storage: Storage,
public events: Events) {
this.loginSucessEventEmitter = new EventEmitter();
this.loginErrorEventEmitter = new EventEmitter();
this.logoutEventEmitter = new EventEmitter();
firebase.auth().onAuthStateChanged(usuarioModel => {
this.callBackStateChange(usuarioModel);
})
}
private callBackStateChange(usuario) {
this.ngZone.run(() => {
if (usuario == null) {
this.currentUser = null;
} else {
this.currentUser = usuario;
}
})
}
}
MyApp class(app.components)
export class MyApp {
@ViewChild(Nav) nav: Nav;
rootPage = LoginPage;
pages: Array<{title: string, component: any}>;
constructor(platform: Platform, public loginProvider: LoginProvider) {
this.pages = [
{ title: 'Debates', component: ListDebatePage },
{ title: 'Meus debates', component: ListDebateUserPage }
];
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
Splashscreen.hide();
});
}
openPage(page) {
// Reset the content nav to have just this page
// we wouldn’t want the back button to show in this scenario
//this.nav.push(page.component);
this.nav.setRoot(page.component);
}
}
App.html
<ion-menu [content]="content">
<ion-header>
<ion-toolbar color="debBackGround">
<ion-title>
<span *ngIf="loginProvider.currentuser">Not Work</span>
</ion-title>
<div text-center>
<img src="" />
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<button menuClose ion-item *ngFor="let p of pages" (click)="openPage(p)">
{{p.title}}
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>