⚠️ Advertencia sobre Modificaciones del Core: Si bien BaP Framework permite modificar cualquier archivo en
src/_main/, ten en cuenta que al actualizar a una nueva versión de BaP en el futuro, cualquier cambio manual en los archivos del núcleo se sobrescribirá y perderá. Se sugiere contactar al referente o mantenedor del framework para sugerir mejoras o cambios antes de alterar el motor localmente.Módulo firebaseInit.js
Gateway único e inmutable para la inicialización perezosa de la SDK de Google Firebase. Evita la múltiple instanciación en aplicaciones web SPA.
Atributos Exportados (export const)
1. bapApp, bapAuth, bapDB, bapAnalytics
Tipo: FirebaseApp / Auth / Database / Analytics
Propósito: Instancias exportadas de `FirebaseApp`, `Auth`, `Database` y `Analytics` inicializadas con la configuración inyectada por Gulp desde `.env`.
Ejemplo de uso:
import { bapAuth, bapDB } from "../../_main/firebaseInit.js";
// Consultar usuario actual en Firebase Auth
console.log("Usuario Firebase:", bapAuth.currentUser);
// Referencia a Realtime Database
console.log("Instancia DB activa:", bapDB);Funciones Exportadas (export function)
1. logAnalyticEvent(eventObj)
Firma: logAnalyticEvent(eventObj: Object): void
Propósito: Emite eventos directamente a Google Analytics asegurando que la instancia `bapAnalytics` esté activa.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
eventObj | Object | Sí | Objeto que contiene el nombre del evento y sus parámetros de telemetría. |
eventObj.eventName | String | Sí | Nombre taxonómico del evento en Google Analytics. |
eventObj.params | Object | Opcional | Parámetros adicionales clave-valor asociados al evento. |
Ejemplo de uso:
import { logAnalyticEvent } from "../../_main/firebaseInit.js";
logAnalyticEvent({
eventName: "page_view",
params: { page_title: "Documentación Core Engine" }
});Buenas Prácticas
- No llamar a
initializeApp()nuevamente: Importar las instancias exportadas desde `firebaseInit.js`. - Validar
CONSTANT.FIREBASE_AVAILABLE: Verificar disponibilidad antes de ejecutar llamadas a Firebase en desarrollo estático.