FirebaseSetupOrchestrator constructor
FirebaseSetupOrchestrator(
- SetupConfig config, {
- FirebaseService? firebase,
- FirebaseBillingService? billing,
- FirebaseInitializer? initializer,
- HostingSiteManager? hosting,
- ArtifactCleanupService? cleanup,
- ProcessRunner? runner,
Implementation
FirebaseSetupOrchestrator(
this.config, {
FirebaseService? firebase,
FirebaseBillingService? billing,
FirebaseInitializer? initializer,
HostingSiteManager? hosting,
ArtifactCleanupService? cleanup,
ProcessRunner? runner,
}) : firebase = firebase ?? FirebaseService(config, runner: runner),
billing =
billing ??
FirebaseBillingService(
config.firebaseProjectId ?? '',
runner: runner,
),
initializer =
initializer ??
FirebaseInitializer(config.firebaseProjectId ?? '', runner: runner),
// ─── Hosting wiring ────────────────────────────────────────────────
// Pass `firebase.authEnvironment` so HostingSiteManager runs every
// `firebase` call with the same `GOOGLE_APPLICATION_CREDENTIALS`
// Oracular uses elsewhere. Without this, `firebase
// hosting:sites:create` inherits only the parent shell's env and
// falls back to firebase-tools' stored login — which routinely
// fails with "Failed to authenticate, have you run firebase
// login?" the moment the user has logged out (or never logged in).
hosting =
hosting ??
HostingSiteManager(
config.firebaseProjectId ?? '',
workingDirectory: config.outputDir,
environment: (firebase ?? FirebaseService(config, runner: runner))
.authEnvironment,
runner: runner,
),
cleanup =
cleanup ??
ArtifactCleanupService(
config.firebaseProjectId ?? '',
runner: runner,
);