MarioParicio / proyecto-final-grado-MarioParicio-main

1 stars 0 forks source link

Hacer que añadir los datos de un usuario a firestore sea un método para reducir código #2

Open MarioParicio opened 1 year ago

MarioParicio commented 1 year ago

Hacer que añadir los datos de un usuario a firestore sea un método para reducir código Aquí se muestra el código en react del concepto: import { createContext} from "react"; import { auth, firestore } from '../firebase'; // Import your Firebase auth and firestore instance import 'react-toastify/dist/ReactToastify.css'; import { toast } from 'react-toastify';

const LoginContext = createContext();

const LoginProvider = ({children }) => {

const addUserToFirestore = async (email, role) => {
    const userRef = firestore.collection('users').doc(email); 
    const doc = await userRef.get(); 
    if (!doc.exists) {
      await userRef.set({ email, role }); 
    }
};

const register = async (email, password) => {
    try {
        await auth.createUserWithEmailAndPassword(email, password);
        toast.success("Registro exitoso");
        await addUserToFirestore(email, "user");
        return true;
    } catch (error) {
        toast.error(`Error en el registro: ${error.message}`);
        return false;
    }
}

const login = async (email, password) => {
    try {
      await auth.signInWithEmailAndPassword(email, password);
      toast.success("Inicio de sesión exitoso");
      await addUserToFirestore(email, "user");
      return true; // Return true on success
    } catch (error) {
      toast.error(`Error en el inicio de sesión: ${error.message}`);
      return false; // Return false on failure
    }
  }

return (
    <LoginContext.Provider
        value={{
            register,
            login
        }}
    >
    {children}    </LoginContext.Provider>

)

} export { LoginProvider } export default LoginContext;