diff --git a/firebase.json b/firebase.json index 2c33c29..6564edd 100644 --- a/firebase.json +++ b/firebase.json @@ -1,11 +1,7 @@ { "hosting": { "public": "dist", - "ignore": [ - "firebase.json", - "**/.*", - "**/node_modules/**" - ], + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], "rewrites": [ { "source": "**", diff --git a/src/Hooks/useAnalytics.ts b/src/Hooks/useAnalytics.ts index 92887f6..b8522c1 100644 --- a/src/Hooks/useAnalytics.ts +++ b/src/Hooks/useAnalytics.ts @@ -1,17 +1,30 @@ import { initializeApp } from 'firebase/app'; -import { getAnalytics, logEvent } from 'firebase/analytics'; +import { Analytics, getAnalytics, logEvent } from 'firebase/analytics'; const firebaseConfig = { apiKey: 'AIzaSyCZ1AHMb5zmWS4VoRnC-OBxTswUfrJ0mlY', authDomain: 'life-trinket.firebaseapp.com', projectId: 'life-trinket', - storageBucket: 'life-trinket.appspot.com', + storageBucket: 'life-trinket.firebasestorage.app', messagingSenderId: '508011650619', appId: '1:508011650619:web:bdc7d0b6f8707b1f9e861e', + measurementId: 'G-BE86QSSG14', }; const app = initializeApp(firebaseConfig); -const analytics = getAnalytics(app); +let analytics: Analytics | null = null; + +const getAnalyticsInstance = () => { + if (!analytics) { + try { + analytics = getAnalytics(app); + } catch (error) { + console.error('Failed to initialize Firebase Analytics:', error); + return null; + } + } + return analytics; +}; export const useAnalytics = () => { const trackEvent = ( @@ -23,12 +36,18 @@ export const useAnalytics = () => { return; } + const analyticsInstance = getAnalyticsInstance(); + if (!analyticsInstance) { + console.warn('Analytics not available'); + return; + } + const paramsWithVersion = { ...eventParams, app_version: import.meta.env.VITE_APP_VERSION, }; - logEvent(analytics, eventName, paramsWithVersion); + logEvent(analyticsInstance, eventName, paramsWithVersion); }; return { trackEvent };