// NutriTrack — Firebase SDK Web (modular API)
// Generado por CULTIVA IA · firebase-fundamentos-configuracion
// npx -y firebase-tools@latest apps:sdkconfig WEB 1:847239016582:web:a3f8e2c1d4b09e7f
import { initializeApp, FirebaseApp } from "firebase/app";
import { getAuth, Auth } from "firebase/auth";
import { getFirestore, Firestore } from "firebase/firestore";
import { getFunctions, Functions } from "firebase/functions";
import { getPerformance } from "firebase/performance";
// Config obtenida via CLI — NO descargar manualmente desde consola
const firebaseConfig = {
apiKey: "AIzaSyBxQ7mKrN4p2tDvU9sE1fLhA8wCjMoYkZc",
authDomain: "nutritrack-app-prod.firebaseapp.com",
projectId: "nutritrack-app-prod",
storageBucket: "nutritrack-app-prod.firebasestorage.app",
messagingSenderId: "847239016582",
appId: "1:847239016582:web:a3f8e2c1d4b09e7f",
measurementId: "G-K8P3N2Q7RT"
};
// Inicializacion singleton — evitar doble init en HMR (Vite dev)
const app: FirebaseApp = initializeApp(firebaseConfig);
// Servicios exportados
export const auth: Auth = getAuth(app);
export const db: Firestore = getFirestore(app);
export const functions: Functions = getFunctions(app, "europe-west1");
// Performance solo en cliente (no SSR)
if (typeof window !== "undefined") {
getPerformance(app);
}
export default app;
import { collection, getDocs, addDoc, query, where, Timestamp } from "firebase/firestore";
import { db, auth } from "../lib/firebase";
interface Patient {
name: string;
email: string;
nutriId: string; // uid del nutricionista
createdAt: Timestamp;
}
/** Obtiene pacientes del nutricionista autenticado */
export async function getMyPatients(): Promise<Patient[]> {
const uid = auth.currentUser?.uid;
if (!uid) throw new Error("No autenticado");
const q = query(
collection(db, "patients"),
where("nutriId", "==", uid)
);
const snap = await getDocs(q);
return snap.docs.map(d => ({ id: d.id, ...d.data() } as Patient & { id: string }));
}