switchEnv method

Future<bool> switchEnv(
  1. FirebaseEnvConfig config
)

Implementation

Future<bool> switchEnv(FirebaseEnvConfig config) async {
  logger.divider();
  try {
    validator.validateProjectStructure();
    validator.validateFirebaseConfigs(config);
    validator.validateEnvironmentMismatch(config);

    await backupService.createBackup();

    final results = await Future.wait([
      androidHandler.switchEnv(config),
      iosHandler.switchEnv(config),
      webHandler.switchEnv(config),
      macosHandler.switchEnv(config),
      windowsHandler.switchEnv(config),
    ]);

    // Advanced features
    await templateHandler.generateFiles(config);
    await dotEnvHandler.updateDotEnv(config);

    if (config.runFlutterfire) {
      await _runFlutterfire(config);
    }

    if (config.flavor != null) {
      logger.info('Flavor associated with this environment: ${config.flavor}');
    }

    return results.every((success) => success);
  } catch (e) {
    logger.error('$e');
    return false;
  }
}