Files
holobooth/lib/bootstrap.dart
Erick b5a41dfe3b feat: adding production environment config (#317)
* feat: adding production config files

* better handling prod and dev environments

* small fixes and changes regarding prod

* fixing domains

* feat: fixing config functions host

* feat: properly loading firebase options depending on the env

* adding final prod domain url

* fix: lint
2023-01-12 11:23:20 -03:00

61 lines
1.8 KiB
Dart

// ignore_for_file: avoid_print
import 'dart:async';
import 'package:authentication_repository/authentication_repository.dart';
import 'package:avatar_detector_repository/avatar_detector_repository.dart';
import 'package:bloc/bloc.dart';
import 'package:convert_repository/convert_repository.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:io_photobooth/app/app.dart';
import 'package:io_photobooth/app/app_bloc_observer.dart';
import 'package:io_photobooth/landing/loading_indicator_io.dart'
if (dart.library.html) 'package:io_photobooth/landing/loading_indicator_web.dart';
Future<void> bootstrap({
required String convertUrl,
required FirebaseOptions firebaseOptions,
}) async {
WidgetsFlutterBinding.ensureInitialized();
Bloc.observer = AppBlocObserver();
FlutterError.onError = (details) {
print(details.exceptionAsString());
print(details.stack);
};
await Firebase.initializeApp(
options: firebaseOptions,
);
final authenticationRepository = AuthenticationRepository(
firebaseAuth: FirebaseAuth.instance,
);
await authenticationRepository.signInAnonymously();
final avatarDetectorRepository = AvatarDetectorRepository();
final convertRepository = ConvertRepository(
url: convertUrl,
);
runZonedGuarded(
() => runApp(
App(
authenticationRepository: authenticationRepository,
avatarDetectorRepository: avatarDetectorRepository,
convertRepository: convertRepository,
),
),
(error, stackTrace) {
print(error);
print(stackTrace);
},
);
SchedulerBinding.instance.addPostFrameCallback(
(_) => removeLoadingIndicator(),
);
}