From bab29c23e391268a2d5c050da6519afddca0d39b Mon Sep 17 00:00:00 2001 From: Texas0295 Date: Sat, 16 Aug 2025 16:58:12 +0800 Subject: [PATCH] :bug: linux: guard FirebaseAnalyticsObserver when Firebase is not initialized --- lib/route.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/route.dart b/lib/route.dart index be0e6b08..8af066e9 100644 --- a/lib/route.dart +++ b/lib/route.dart @@ -1,6 +1,8 @@ +import 'dart:io' show Platform; import 'package:animations/animations.dart'; import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/foundation.dart' show kIsWeb; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/screens/about.dart'; @@ -69,15 +71,22 @@ Widget _tabPagesTransitionBuilder( child: child, ); } +bool get _supportsAnalytics => + kIsWeb || Platform.isAndroid || Platform.isIOS; // Provider for the router final routerProvider = Provider((ref) { + final observers = []; + + if (_supportsAnalytics) { + final analytics = FirebaseAnalytics.instance; + observers.add(FirebaseAnalyticsObserver(analytics: analytics)); + } + return GoRouter( navigatorKey: rootNavigatorKey, initialLocation: '/', - observers: [ - FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance), - ], + observers: observers, routes: [ ShellRoute( navigatorKey: _shellNavigatorKey,