initializeApp method

Future<FirebaseApp> initializeApp({
  1. String? name,
  2. required FirebaseOptions options,
})

Implementation

Future<FirebaseApp> initializeApp({
  String? name,
  required FirebaseOptions options,
}) async {
  /// Ensures the name isn't null, in case no name
  /// passed, [defaultFirebaseAppName] will be used
  final _name = name ?? defaultFirebaseAppName;

  if (_apps.containsKey(_name)) {
    final existingApp = _apps[name]!;
    if (options.apiKey != existingApp.options.apiKey ||
        (options.databaseURL != null &&
            options.databaseURL != existingApp.options.databaseURL) ||
        (options.storageBucket != null &&
            options.storageBucket != existingApp.options.storageBucket)) {
      // Options are different; throw.
      throw duplicateApp(_name);
    } else {
      return existingApp;
    }
  }

  final _delegate = _FirebaseAppDelegete(this, _name, options);

  _apps[_name] = FirebaseApp._(_delegate);
  return _apps[_name]!;
}