🐛 linux: guard FirebaseAnalyticsObserver when Firebase is not initialized

This commit is contained in:
Texas0295
2025-08-16 16:58:12 +08:00
parent 76b39f2df3
commit bab29c23e3

View File

@@ -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<GoRouter>((ref) {
final observers = <NavigatorObserver>[];
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,