// File generated by FlutterFire CLI.
// ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members

import 'package:example/config/environment_config.dart';
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
import 'package:flutter/foundation.dart'
    show TargetPlatform, defaultTargetPlatform, kIsWeb;

/// Default [FirebaseOptions] for use with your Firebase apps.
///
/// Example:
/// ```dart
/// import 'firebase_options.dart';
/// // ...
/// await Firebase.initializeApp(
///   options: DefaultFirebaseOptions.currentPlatform,
/// );
/// ```
class DefaultFirebaseOptions {
  static FirebaseOptions get currentPlatform {
    if (kIsWeb) {
      return web;
    }
    switch (defaultTargetPlatform) {
      case TargetPlatform.android:
        return android;
      case TargetPlatform.iOS:
        return ios;
      case TargetPlatform.macOS:
        return macos;
      case TargetPlatform.windows:
        throw UnsupportedError(
          'DefaultFirebaseOptions have not been configured for windows - '
          'you can reconfigure this by running the FlutterFire CLI again.',
        );
      case TargetPlatform.linux:
        throw UnsupportedError(
          'DefaultFirebaseOptions have not been configured for linux - '
          'you can reconfigure this by running the FlutterFire CLI again.',
        );
      default:
        throw UnsupportedError(
          'DefaultFirebaseOptions are not supported for this platform.',
        );
    }
  }

  static FirebaseOptions web = FirebaseOptions(
    apiKey: EnvironmentConfig().firebaseWebApiKey,
    appId: EnvironmentConfig().firebaseAppIdWeb,
    messagingSenderId: EnvironmentConfig().firebaseMessageId,
    projectId: EnvironmentConfig().firebaseProjectId,
    authDomain: EnvironmentConfig().firebaseAuthDomain,
    storageBucket: EnvironmentConfig().firebaseStorageUrl,
  );

  static FirebaseOptions android = FirebaseOptions(
    apiKey: EnvironmentConfig().firebaseAndroidApiKey,
    appId: EnvironmentConfig().firebaseAppIdAndroid,
    messagingSenderId: EnvironmentConfig().firebaseMessageId,
    projectId: EnvironmentConfig().firebaseProjectId,
    storageBucket: EnvironmentConfig().firebaseStorageUrl,
  );

  static FirebaseOptions ios = FirebaseOptions(
    apiKey: EnvironmentConfig().firebaseIosApiKey,
    appId: EnvironmentConfig().firebaseAppIdIos,
    messagingSenderId: EnvironmentConfig().firebaseMessageId,
    projectId: EnvironmentConfig().firebaseProjectId,
    storageBucket: EnvironmentConfig().firebaseStorageUrl,
    iosClientId: EnvironmentConfig().firebaseClientIdIos,
    iosBundleId: 'nl.iconica.appshellDemo',
  );

  static FirebaseOptions macos = FirebaseOptions(
    apiKey: EnvironmentConfig().firebaseIosApiKey,
    appId: EnvironmentConfig().firebaseAppIdMacos,
    messagingSenderId: EnvironmentConfig().firebaseMessageId,
    projectId: EnvironmentConfig().firebaseProjectId,
    storageBucket: EnvironmentConfig().firebaseStorageUrl,
    iosClientId: EnvironmentConfig().firebaseClientIdMacos,
    iosBundleId: 'nl.iconica.appshellDemo.RunnerTests',
  );
}
