collect method

  1. @override
FirebaseConfig collect()
override

Collects and returns the value produced by this wizard step.

Implementation

@override
FirebaseConfig collect() {
  LoggerService.blank();
  LoggerService.info('Firebase');

  final enabled = PromptService.confirm(
    'Does project use Firebase?',
    defaultValue: current?.enabled ?? false,
  );

  if (!enabled) {
    return FirebaseConfig(
      enabled: false,
      testerGroup: current?.testerGroup ?? 'internal-testers',
      configurations: const {},
    );
  }

  final testerGroup = PromptService.ask(
    'Default Firebase tester group',
    defaultValue: current?.testerGroup ?? 'internal-testers',
  );

  final configurations = <String, FirebaseDetails>{};

  for (final target in flavors.flavors) {
    LoggerService.blank();
    LoggerService.command(target);

    final currentDetails = current?.configurationFor(target);

    configurations[target] = FirebaseDetails(
      android: _collectPlatform(
        enabled: platforms.android,
        platform: 'Android',
        target: target,
        current: currentDetails?.android,
      ),
      ios: _collectPlatform(
        enabled: platforms.ios,
        platform: 'iOS',
        target: target,
        current: currentDetails?.ios,
      ),
      web: _collectPlatform(
        enabled: platforms.web,
        platform: 'Web',
        target: target,
        current: currentDetails?.web,
      ),
    );
  }

  return FirebaseConfig(
    enabled: true,
    testerGroup: testerGroup,
    configurations: configurations,
  );
}