From 33206b94f37f03401201845db650816bebc4c739 Mon Sep 17 00:00:00 2001 From: spakkan Date: Mon, 29 Dec 2025 13:27:35 +0300 Subject: [PATCH] firebase integration with Windows-safe guard implementations added. flutter pub get run and packages updated accordingly. --- game_template/lib/firebase_options.dart | 1 + .../lib/services/crash_reporting/crash_reporting.dart | 3 +++ .../crash_reporting/crash_reporting_desktop.dart | 8 ++++++++ .../services/crash_reporting/crash_reporting_impl.dart | 5 +++++ .../services/crash_reporting/crash_reporting_mobile.dart | 9 +++++++++ 5 files changed, 26 insertions(+) create mode 100644 game_template/lib/services/crash_reporting/crash_reporting.dart create mode 100644 game_template/lib/services/crash_reporting/crash_reporting_desktop.dart create mode 100644 game_template/lib/services/crash_reporting/crash_reporting_impl.dart create mode 100644 game_template/lib/services/crash_reporting/crash_reporting_mobile.dart diff --git a/game_template/lib/firebase_options.dart b/game_template/lib/firebase_options.dart index a62304c6a..37c80fac3 100644 --- a/game_template/lib/firebase_options.dart +++ b/game_template/lib/firebase_options.dart @@ -1,5 +1,6 @@ // File normally generated by FlutterFire CLI. This is a stand-in. // See README.md for details. + import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; class DefaultFirebaseOptions { diff --git a/game_template/lib/services/crash_reporting/crash_reporting.dart b/game_template/lib/services/crash_reporting/crash_reporting.dart new file mode 100644 index 000000000..ead615817 --- /dev/null +++ b/game_template/lib/services/crash_reporting/crash_reporting.dart @@ -0,0 +1,3 @@ +abstract class CrashReporting { + void recordError(Object error, StackTrace stackTrace); +} diff --git a/game_template/lib/services/crash_reporting/crash_reporting_desktop.dart b/game_template/lib/services/crash_reporting/crash_reporting_desktop.dart new file mode 100644 index 000000000..a715794f0 --- /dev/null +++ b/game_template/lib/services/crash_reporting/crash_reporting_desktop.dart @@ -0,0 +1,8 @@ +import 'crash_reporting.dart'; + +class CrashReportingImpl implements CrashReporting { + @override + void recordError(Object error, StackTrace stackTrace) { + // no-op on Windows / macOS / Linux + } +} diff --git a/game_template/lib/services/crash_reporting/crash_reporting_impl.dart b/game_template/lib/services/crash_reporting/crash_reporting_impl.dart new file mode 100644 index 000000000..77526154a --- /dev/null +++ b/game_template/lib/services/crash_reporting/crash_reporting_impl.dart @@ -0,0 +1,5 @@ +// lib/services/crash_reporting/crash_reporting_impl.dart + +export 'crash_reporting_desktop.dart' + if (dart.library.android) 'crash_reporting_mobile.dart' + if (dart.library.ios) 'crash_reporting_mobile.dart'; diff --git a/game_template/lib/services/crash_reporting/crash_reporting_mobile.dart b/game_template/lib/services/crash_reporting/crash_reporting_mobile.dart new file mode 100644 index 000000000..bb40440f9 --- /dev/null +++ b/game_template/lib/services/crash_reporting/crash_reporting_mobile.dart @@ -0,0 +1,9 @@ +import 'package:firebase_crashlytics/firebase_crashlytics.dart'; +import 'crash_reporting.dart'; + +class CrashReportingImpl implements CrashReporting { + @override + void recordError(Object error, StackTrace stackTrace) { + FirebaseCrashlytics.instance.recordError(error, stackTrace); + } +}