diff --git a/lib/bloc/analytics/analytics_repo.dart b/lib/bloc/analytics/analytics_repo.dart index 6a87eaf16f..c6382221cc 100644 --- a/lib/bloc/analytics/analytics_repo.dart +++ b/lib/bloc/analytics/analytics_repo.dart @@ -1,5 +1,7 @@ import 'dart:convert'; import 'dart:async'; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:firebase_core/firebase_core.dart'; @@ -113,6 +115,14 @@ class FirebaseAnalyticsRepo implements AnalyticsRepo { /// Initialize with retry mechanism Future _initializeWithRetry(AnalyticsSettings settings) async { + // Firebase is not supported on Linux + if (!kIsWeb && defaultTargetPlatform == TargetPlatform.linux) { + _isInitialized = false; + _isEnabled = false; + _initCompleter.completeError(UnsupportedError); + return; + } + try { if (kDebugMode) { log( @@ -131,9 +141,19 @@ class FirebaseAnalyticsRepo implements AnalyticsRepo { await loadPersistedQueue(); // Initialize Firebase - await Firebase.initializeApp( - options: DefaultFirebaseOptions.currentPlatform, - ); + try { + await Firebase.initializeApp( + options: DefaultFirebaseOptions.currentPlatform, + ); + } on UnsupportedError { + _isInitialized = false; + _isEnabled = false; + if (kDebugMode) { + log('Firebase Analytics initializeApp failed with UnsupportedError'); + } + _initCompleter.completeError(UnsupportedError); + return; + } _instance = FirebaseAnalytics.instance; _isInitialized = true;