feat: Configure Firebase initialization with platform-specific options and add URL types for Google authentication

This commit is contained in:
Van Leemput Dayron
2025-11-02 19:02:39 +01:00
parent 459047e2c4
commit 2eac2348a9
3 changed files with 120 additions and 71 deletions

View File

@@ -4,10 +4,11 @@ import 'package:firebase_core/firebase_core.dart';
import 'package:travel_mate/blocs/balance/balance_bloc.dart';
import 'package:travel_mate/blocs/expense/expense_bloc.dart';
import 'package:travel_mate/blocs/message/message_bloc.dart';
import 'package:travel_mate/firebase_options.dart';
import 'package:travel_mate/services/balance_service.dart';
import 'package:travel_mate/services/error_service.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:travel_mate/services/expense_service.dart';
import 'package:travel_mate/services/expense_service.dart';
import 'blocs/auth/auth_bloc.dart';
import 'blocs/auth/auth_event.dart';
import 'blocs/theme/theme_bloc.dart';
@@ -31,19 +32,19 @@ import 'pages/signup.dart';
import 'pages/resetpswd.dart';
/// Entry point of the Travel Mate application.
///
///
/// This function initializes Flutter widgets, loads environment variables,
/// initializes Firebase, and starts the application.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await dotenv.load(fileName: ".env");
await Firebase.initializeApp();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
runApp(const MyApp());
}
/// The root widget of the Travel Mate application.
///
///
/// This widget sets up the BLoC providers, repositories, and MaterialApp
/// configuration. It manages the application's theme, routing, and global state.
class MyApp extends StatelessWidget {
@@ -51,7 +52,7 @@ class MyApp extends StatelessWidget {
const MyApp({super.key});
/// Builds the widget tree for the application.
///
///
/// Sets up repository providers for dependency injection, BLoC providers
/// for state management, and configures the MaterialApp with themes and routing.
@override
@@ -105,7 +106,6 @@ class MyApp extends StatelessWidget {
expenseRepository: context.read<ExpenseRepository>(),
),
),
],
child: MultiBlocProvider(
providers: [
@@ -125,22 +125,17 @@ class MyApp extends StatelessWidget {
),
// Trip BLoC for managing travel trips
BlocProvider(
create: (context) =>
TripBloc(context.read<TripRepository>()),
create: (context) => TripBloc(context.read<TripRepository>()),
),
// User BLoC for managing user data
BlocProvider(create: (context) => UserBloc()),
// Message BLoC for managing in-app messaging
BlocProvider(
create: (context) => MessageBloc(),
),
BlocProvider(create: (context) => MessageBloc()),
// Account BLoC for managing user account settings
BlocProvider(
create: (context) => AccountBloc(
context.read<AccountRepository>(),
),
create: (context) => AccountBloc(context.read<AccountRepository>()),
),
// Expense BLoC for managing trip expenses
BlocProvider<ExpenseBloc>(
create: (context) => ExpenseBloc(
@@ -156,7 +151,6 @@ class MyApp extends StatelessWidget {
expenseRepository: context.read<ExpenseRepository>(),
),
),
],
child: BlocBuilder<ThemeBloc, ThemeState>(
builder: (context, themeState) {