feat: Configure Firebase initialization with platform-specific options and add URL types for Google authentication
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user