import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: FirebaseInitScreen(),
);
}
}
class FirebaseInitScreen extends StatefulWidget {
const FirebaseInitScreen({super.key});
@override
State<FirebaseInitScreen> createState() => _FirebaseInitScreenState();
}
class _FirebaseInitScreenState extends State<FirebaseInitScreen> {
late Future<FirebaseApp> _firebaseInitialization;
String _statusMessage = 'Initializing...';
@override
void initState() {
super.initState();
_firebaseInitialization = Firebase.initializeApp();
_firebaseInitialization.then((_) {
setState(() {
_statusMessage = 'Firebase Initialized!';
});
}).catchError((error) {
setState(() {
_statusMessage = 'Error initializing Firebase: $error';
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Firebase Init Screen')),
body: Center(
child: Text(_statusMessage),
),
);
}
}
We import the firebase_core package to access Firebase initialization.
In initState, we start initializing Firebase asynchronously with Firebase.initializeApp(). We store the future in _firebaseInitialization.
We use then and catchError on the future to update a state variable _statusMessage depending on success or failure.
The UI shows the current status message in the center of the screen.
This approach ensures the app waits for Firebase setup and informs the user about the progress or errors.