mirror of
https://github.com/fergalmoran/icebreaker-mobile.git
synced 2025-12-22 01:29:42 +00:00
78 lines
2.4 KiB
TypeScript
78 lines
2.4 KiB
TypeScript
import {Modal, NavController, Page, ViewController} from 'ionic-angular';
|
|
import {Component, OnInit, Inject} from '@angular/core';
|
|
import {AngularFire, AuthProviders, AuthMethods } from 'angularfire2';
|
|
import {AuthProvider} from "../../providers/auth/auth";
|
|
import {TabsPage} from "../tabs/tabs"
|
|
|
|
@Page({
|
|
templateUrl: 'build/pages/login/login.html'
|
|
})
|
|
export class LoginPage {
|
|
|
|
error: any
|
|
|
|
constructor(
|
|
private navCtrl: NavController,
|
|
public af: AngularFire,
|
|
public viewCtrl: ViewController,
|
|
private auth: AuthProvider) {
|
|
|
|
}
|
|
|
|
dismiss() {
|
|
this.viewCtrl.dismiss();
|
|
}
|
|
|
|
registerUser(_credentials, _event) {
|
|
_event.preventDefault();
|
|
this.af.auth.createUser(_credentials)
|
|
.then((user) => {
|
|
console.log(`Create User Success:`, user);
|
|
_credentials.created = true;
|
|
|
|
return this.login(_credentials, _event);
|
|
})
|
|
.catch(e => console.error(`Create User Failure:`, e));
|
|
}
|
|
|
|
login(credentials, _event) {
|
|
_event.preventDefault();
|
|
|
|
// if this was called from the register user, the check if we
|
|
// need to create the user object or not
|
|
let addUser = credentials.created
|
|
credentials.created = null;
|
|
|
|
// login usig the email/password auth provider
|
|
this.af.auth.login(credentials, {
|
|
provider: AuthProviders.Password,
|
|
method: AuthMethods.Password
|
|
}).then((authData) => {
|
|
console.log(authData)
|
|
|
|
if (addUser) {
|
|
const itemObservable = this.af.database.object('/users/' + authData.uid);
|
|
itemObservable.set({
|
|
"provider": authData.auth.providerData[0].providerId,
|
|
"avatar": authData.auth.photoURL || "MISSING",
|
|
"displayName": authData.auth.providerData[0].displayName || authData.auth.email,
|
|
})
|
|
} else {
|
|
this.dismiss()
|
|
}
|
|
}).then((value) => {
|
|
this.dismiss()
|
|
}).catch((error) => {
|
|
this.error = error
|
|
console.log(error)
|
|
});
|
|
}
|
|
|
|
registerUserWithGoogleUsingPopupFirebase() {
|
|
this.auth.loginWithGoogleUsingPopupFirebase().subscribe(data => {
|
|
this.navCtrl.setRoot(TabsPage);
|
|
}, err => {
|
|
this.error = err;
|
|
});
|
|
}
|
|
} |