refactor: implement lazy initialization for global BlocProviders and enhance Firebase initialization with timeout handling

This commit is contained in:
mso7nueh
2026-01-13 12:22:22 +03:00
parent a778257215
commit d206e7ec12
13 changed files with 161 additions and 41 deletions

View File

@@ -1,3 +1,4 @@
import 'dart:async';
import 'dart:io' as io;
import 'package:eatvio_app/core/app_config.dart';
import 'package:eatvio_app/core/env_config.dart';
@@ -37,9 +38,20 @@ class AppInitializer {
/// Инициализация Firebase
static Future<void> _initializeFirebase() async {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform).timeout(
const Duration(seconds: 10),
onTimeout: () {
throw TimeoutException('Firebase initialization timeout');
},
);
if (sl<AppConfig>().buildType == AppBuildType.prod) {
await FirebaseMessaging.instance.requestPermission();
try {
await FirebaseMessaging.instance.requestPermission().timeout(
const Duration(seconds: 5),
);
} catch (e) {
// Разрешение не критично, продолжаем работу
}
}
}