Firebase Authentication es un servicio que permite autenticar a los usuarios en aplicaciones mediante varios métodos, como el correo electrónico y contraseña, proveedores de identidad como Google y Facebook, y autenticación anónima. Ofrece un SDK fácil de implementar que gestiona tareas comunes como el registro, el inicio de sesión y la gestión de sesiones.
Entre sus características principales se incluyen:
Antes de comenzar, debes cumplir con los siguientes requisitos:
1. Tener una cuenta de Firebase. Puedes crear una gratuitamente desde aquí.
2. Configurar un proyecto en la consola de Firebase.
3. Conocer los fundamentos de JavaScript y HTML.
4. Tener Node.js instalado si planeas ejecutar la aplicación en un servidor local.
Primero, dirígete a la Consola de Firebase y crea un nuevo proyecto. Aquí están los pasos básicos:
1. Crear un proyecto: Una vez que inicies sesión, haz clic en "Agregar proyecto", ingresa el nombre y sigue los pasos de configuración inicial.
2. Activar Firebase Authentication: En la pestaña "Authentication" de tu proyecto, habilita los métodos de autenticación que planeas usar (por ejemplo, correo y contraseña o autenticación con Google).
3. Agregar Firebase SDK: Selecciona "Agregar aplicación web" en la consola y sigue las instrucciones para obtener las credenciales y el código de inicialización del SDK.
Después de haber creado el proyecto en Firebase, es momento de integrar Firebase Authentication en tu aplicación. Aquí te mostramos cómo hacerlo.
Puedes incluir Firebase en tu proyecto de dos formas: usando un paquete de npm o directamente desde un CDN. A continuación te mostramos ambos métodos:
npm install firebase
En tu archivo JavaScript, importa Firebase:
import { initializeApp } from 'firebase/app';
import { getAuth } from 'firebase/auth';
Si prefieres usar Firebase a través de un CDN, agrega el siguiente script en el archivo HTML:
<script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-auth.js"></script>
Una vez incluido el SDK, necesitas inicializar Firebase usando la configuración de tu proyecto. Esta información la puedes obtener desde la consola de Firebase en la sección "Configuración de tu aplicación".
// Configuración de Firebase obtenida desde la consola
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.appspot.com",
messagingSenderId: "SENDER_ID",
appId: "APP_ID"
};
// Inicializar Firebase
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
Ahora que Firebase está configurado, puedes implementar los diferentes métodos de autenticación.
Para implementar un sistema básico de autenticación con correo y contraseña, necesitas dos funciones: una para registrar a un usuario y otra para iniciar sesión.
import { createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";
// Función para registrar usuarios
function registerUser(email, password) {
createUserWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
// Usuario registrado
const user = userCredential.user;
console.log("Usuario registrado:", user);
})
.catch((error) => {
console.error("Error al registrar:", error.message);
});
}
// Función para iniciar sesión
function loginUser(email, password) {
signInWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
// Sesión iniciada
const user = userCredential.user;
console.log("Usuario inició sesión:", user);
})
.catch((error) => {
console.error("Error al iniciar sesión:", error.message);
});
}
Para permitir a los usuarios iniciar sesión con Google, primero debes habilitar el proveedor de Google en la consola de Firebase y luego utilizar el siguiente código:
import { GoogleAuthProvider, signInWithPopup } from "firebase/auth";
// Función para iniciar sesión con Google
function loginWithGoogle() {
const provider = new GoogleAuthProvider();
signInWithPopup(auth, provider)
.then((result) => {
const user = result.user;
console.log("Usuario inició sesión con Google:", user);
})
.catch((error) => {
console.error("Error al iniciar sesión con Google:", error.message);
});
}
Firebase Authentication proporciona varias formas de gestionar las sesiones de los usuarios. Puedes detectar si un usuario ha iniciado sesión y mantener la sesión activa a través de onAuthStateChanged
.
import { onAuthStateChanged } from "firebase/auth";
onAuthStateChanged(auth, (user) => {
if (user) {
console.log("Usuario está autenticado:", user);
} else {
console.log("No hay usuario autenticado");
}
});
Para cerrar la sesión de un usuario, simplemente usa la función signOut
.
import { signOut } from "firebase/auth";
function logoutUser() {
signOut(auth)
.then(() => {
console.log("Usuario cerró sesión");
})
.catch((error) => {
console.error("Error al cerrar sesión:", error.message);
});
}
Integrar Firebase Authentication en aplicaciones JavaScript es una tarea relativamente sencilla gracias a la documentación clara y las bibliotecas bien estructuradas que Firebase ofrece. En este tutorial, cubrimos los pasos fundamentales para configurar un proyecto de Firebase, integrar el SDK de Firebase Authentication, y manejar la autenticación de usuarios mediante distintos métodos, como correo electrónico, contraseña y Google.
Jorge García
Fullstack developer