mirror of
https://github.com/chinchang/web-maker.git
synced 2025-07-13 01:56:24 +02:00
67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
window.logout = function logout() {
|
|
firebase.auth().signOut();
|
|
};
|
|
function login(providerName) {
|
|
var provider;
|
|
if (providerName === 'fb') {
|
|
provider = new firebase.auth.FacebookAuthProvider();
|
|
} else if (providerName === 'twitter') {
|
|
provider = new firebase.auth.TwitterAuthProvider();
|
|
} else if (providerName === 'google') {
|
|
provider = new firebase.auth.GoogleAuthProvider();
|
|
provider.addScope('https://www.googleapis.com/auth/userinfo.profile');
|
|
} else {
|
|
provider = new firebase.auth.GithubAuthProvider();
|
|
}
|
|
|
|
return firebase
|
|
.auth()
|
|
.signInWithPopup(provider)
|
|
.then(function(result) {
|
|
return;
|
|
// Save this user in the store
|
|
firebase
|
|
.database()
|
|
.ref('users/' + result.user.uid)
|
|
.update({
|
|
displayName: result.user.displayName,
|
|
email: result.user.email,
|
|
photoURL: result.user.providerData[0].photoURL,
|
|
signedUpOn: Date.now()
|
|
})
|
|
.then(function() {
|
|
// Port items in localstorage to user account
|
|
if (window.localStorage.prototyp) {
|
|
var items = JSON.parse(window.localStorage.prototyp);
|
|
var newItemKey;
|
|
items.forEach(function(localItem) {
|
|
itemService.fetchItem(localItem.id).then(function(item) {
|
|
newItemKey = firebase.database().ref('pens').push().key;
|
|
item.createdBy = result.user.uid;
|
|
delete item.uid;
|
|
firebase.database().ref('pens/' + newItemKey).set(item);
|
|
firebase
|
|
.database()
|
|
.ref('users/' + result.user.uid)
|
|
.child('items')
|
|
.child(newItemKey)
|
|
.set(true);
|
|
});
|
|
});
|
|
delete localStorage.prototyp;
|
|
}
|
|
});
|
|
})
|
|
.catch(function(error) {
|
|
// Handle Errors here.
|
|
var errorCode = error.code;
|
|
var errorMessage = error.message;
|
|
// The email of the user's account used.
|
|
var email = error.email;
|
|
// The firebase.auth.AuthCredential type that was used.
|
|
var credential = error.credential;
|
|
console.log(error);
|
|
});
|
|
}
|
|
window.login = login;
|