feat: integrate Firebase Analytics and configure navigation observer in app router
This commit is contained in:
13
lib/core/analytics/firebase_analytics_config.dart
Normal file
13
lib/core/analytics/firebase_analytics_config.dart
Normal 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);
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user