/* export function someAction (context) { } */ import firebase from "firebase/app"; import "firebase/auth"; export function signUpWithEmailAction({ commit }, payload) { commit("setStatus", "loading"); firebase .auth() .createUserWithEmailAndPassword(payload.email, payload.password) .then(response => { commit("setUser", response.user); commit("setStatus", "success"); commit("setError", null); }) .catch(error => { commit("setStatus", "failure"); commit("setError", error.message); }); } export function signInWithEmailAction({ commit }, payload) { commit("setStatus", "loading"); firebase .auth() .signInWithEmailAndPassword(payload.email, payload.password) .then(response => { console.log(response.user); commit("setUser", response.user); commit("setStatus", "success"); commit("setError", null); }) .catch(error => { commit("setStatus", "failure"); commit("setError", error.message); }); } export function signInWithGoogle({ commit }) { commit("setStatus", "loading"); return new Promise((resolve, reject) => { var provider = new firebase.auth.GoogleAuthProvider(); firebase .auth() .signInWithPopup(provider) .then(function(response) { // This gives you a Google Access Token. You can use it to access the Google API. var token = response.credential.accessToken; // The signed-in user info. var user = response.user; var userProfile = { name: user.displayName, email: user.email, photoURL: user.photoURL, uid: user.uid, token: token }; commit("setUser", userProfile); commit("setStatus", "success"); commit("setError", null); resolve(userProfile); // ... }) .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; // ... commit("setStatus", "failure"); commit("setError", error.message); reject(error.message); }); }); } export function signInFromSession({ commit, dispatch }, user) { if (!user) { return dispatch("signOut"); } commit("setStatus", "loading"); return new Promise((resolve, reject) => { commit("setUser", { name: user.displayName, email: user.email, photoURL: user.photoURL, uid: user.uid }); commit("setStatus", "success"); commit("setError", null); resolve(user); }); } export function signOut({ commit }) { return firebase .auth() .signOut() .then(function() { commit("setUser", null); commit("setStatus", "success"); commit("setError", null); }) .catch(function(error) { // An error happened. commit("setStatus", "failure"); commit("setError", error.message); }); }