⚠️ 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ámetroTipoRequeridoDescripción
eventObjObjectObjeto que contiene el nombre del evento y sus parámetros de telemetría.
eventObj.eventNameStringNombre taxonómico del evento en Google Analytics.
eventObj.paramsObjectOpcionalPará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