feat: integrate Firebase Analytics and configure navigation observer in app router

This commit is contained in:
pradeepkumar
2026-04-24 23:47:49 +05:30
parent f18b35d1a3
commit 07c128f2ee
5 changed files with 47 additions and 1 deletions

View File

@@ -0,0 +1,13 @@
import 'package:firebase_analytics/firebase_analytics.dart';
/// Firebase Analytics feeds the linked GA4 property (`G-DHR81R6Z63` on web,
/// native app streams for iOS/Android). One instance is reused across the app
/// for events, and one observer tracks GoRouter screen transitions.
class FirebaseAnalyticsConfig {
FirebaseAnalyticsConfig._();
static final FirebaseAnalytics instance = FirebaseAnalytics.instance;
static final FirebaseAnalyticsObserver navigationObserver =
FirebaseAnalyticsObserver(analytics: instance);
}

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:real_estate_mobile/core/analytics/firebase_analytics_config.dart';
import 'package:real_estate_mobile/core/analytics/umami_analytics.dart';
import 'package:real_estate_mobile/core/constants/app_colors.dart';
import 'package:real_estate_mobile/core/widgets/app_shell.dart';
@@ -45,7 +46,10 @@ final routerProvider = Provider<GoRouter>((ref) {
return GoRouter(
initialLocation: '/splash',
refreshListenable: authRefreshNotifier,
observers: [UmamiAnalytics.navigationObserver],
observers: [
UmamiAnalytics.navigationObserver,
FirebaseAnalyticsConfig.navigationObserver,
],
redirect: (context, state) {
final authState = ref.read(authProvider);
final isAuthenticated = authState.status == AuthStatus.authenticated;