Firebase es una plataforma desarrollada por Google que ofrece servicios backend como base de datos en tiempo real, autenticación de usuarios, almacenamiento de archivos y hosting. En combinación con Vue.js, Firebase permite desarrollar aplicaciones web modernas, interactivas y escalables de manera sencilla.
Antes de comenzar, asegúrate de tener un proyecto Vue configurado. Luego, sigue estos pasos:
Primero, instala la biblioteca oficial de Firebase usando npm o yarn:
npm install firebase
# o
yarn add firebase
1. Ve al panel de Firebase, crea un nuevo proyecto y configura tu aplicación web.
2. Obtén las credenciales de configuración y agrégalas en tu proyecto Vue. Por ejemplo, crea un archivo firebaseConfig.js
en la carpeta src
:
// src/firebaseConfig.js
import { initializeApp } from "firebase/app";
const firebaseConfig = {
apiKey: "TU_API_KEY",
authDomain: "TU_PROYECTO.firebaseapp.com",
projectId: "TU_PROYECTO",
storageBucket: "TU_PROYECTO.appspot.com",
messagingSenderId: "TU_SENDER_ID",
appId: "TU_APP_ID",
};
const firebaseApp = initializeApp(firebaseConfig);
export default firebaseApp;
Importa y utiliza los módulos que necesites de Firebase en los componentes o servicios de tu aplicación.
Puedes gestionar la autenticación de usuarios con Firebase Authentication. Ejemplo para registrar y autenticar usuarios:
import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";
const auth = getAuth();
// Registro de usuarios
const registerUser = async (email, password) => {
try {
const userCredential = await createUserWithEmailAndPassword(auth, email, password);
console.log("Usuario registrado:", userCredential.user);
} catch (error) {
console.error("Error al registrar:", error);
}
};
// Inicio de sesión
const loginUser = async (email, password) => {
try {
const userCredential = await signInWithEmailAndPassword(auth, email, password);
console.log("Usuario autenticado:", userCredential.user);
} catch (error) {
console.error("Error al iniciar sesión:", error);
}
};
Firestore es una base de datos NoSQL que funciona en tiempo real. Ejemplo para agregar y obtener datos:
import { getFirestore, collection, addDoc, getDocs } from "firebase/firestore";
const db = getFirestore();
// Agregar datos
const addDocument = async () => {
try {
const docRef = await addDoc(collection(db, "usuarios"), {
nombre: "Juan",
edad: 30,
});
console.log("Documento agregado con ID:", docRef.id);
} catch (error) {
console.error("Error al agregar documento:", error);
}
};
// Obtener datos
const getDocuments = async () => {
try {
const querySnapshot = await getDocs(collection(db, "usuarios"));
querySnapshot.forEach((doc) => {
console.log(`${doc.id} =>`, doc.data());
});
} catch (error) {
console.error("Error al obtener documentos:", error);
}
};
Sube y gestiona archivos con Firebase Storage. Ejemplo para subir un archivo:
import { getStorage, ref, uploadBytes } from "firebase/storage";
const storage = getStorage();
const uploadFile = async (file) => {
const storageRef = ref(storage, `uploads/${file.name}`);
try {
await uploadBytes(storageRef, file);
console.log("Archivo subido exitosamente");
} catch (error) {
console.error("Error al subir archivo:", error);
}
};
Puedes usar Firebase con la Composition API de Vue 3 para mejorar la modularidad. Ejemplo de autenticación:
import { ref } from "vue";
import { getAuth, signInWithEmailAndPassword } from "firebase/auth";
const useAuth = () => {
const user = ref(null);
const auth = getAuth();
const login = async (email, password) => {
try {
const userCredential = await signInWithEmailAndPassword(auth, email, password);
user.value = userCredential.user;
console.log("Usuario autenticado:", user.value);
} catch (error) {
console.error("Error al iniciar sesión:", error);
}
};
return { user, login };
};
export default useAuth;
Para más información, consulta la documentación oficial:
Jorge García
Fullstack developer