Files
TravelMate/lib/main.dart
Dayron ec0bc59a70 feat: Integrate Firebase Authentication and Firestore
- Added Firebase configuration to Android and iOS projects.
- Created `google-services.json` and `GoogleService-Info.plist` for Firebase setup.
- Implemented `AuthService` for handling user authentication with Firebase.
- Updated `UserProvider` to manage user data with Firestore.
- Refactored `ProfileContent`, `LoginPage`, and `SignUpPage` to use the new authentication service.
- Removed the old `UserService` and replaced it with Firestore-based user management.
- Added Firebase options in `firebase_options.dart` for platform-specific configurations.
- Updated dependencies in `pubspec.yaml` for Firebase packages.
2025-10-06 18:57:30 +02:00

72 lines
2.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:travel_mate/pages/resetpswd.dart';
import 'package:travel_mate/pages/signup.dart';
import 'pages/login.dart';
import 'pages/home.dart';
import 'providers/theme_provider.dart';
import 'providers/user_provider.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => ThemeProvider()),
ChangeNotifierProvider(
create: (context) => UserProvider(),
), // Ajoutez cette ligne
],
child: const MyApp(),
),
);
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return Consumer<ThemeProvider>(
builder: (context, themeProvider, child) {
return MaterialApp(
title: 'Travel Mate',
themeMode: themeProvider.themeMode,
// Thème clair
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color.fromARGB(255, 180, 180, 180),
brightness: Brightness.light,
),
useMaterial3: true,
),
// Thème sombre
darkTheme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color.fromARGB(255, 43, 43, 43),
brightness: Brightness.dark,
),
useMaterial3: true,
),
initialRoute: '/login',
routes: {
'/login': (context) => const LoginPage(),
'/signup': (context) => const SignUpPage(),
'/home': (context) => const HomePage(),
'/forgot': (context) => const ForgotPasswordPage(),
},
debugShowCheckedModeBanner: false,
);
},
);
}
}