FirebaseSetupOrchestrator class
High-level coordinator that wires every Firebase setup sub-step into a single, idempotent end-to-end flow.
Used by:
• The interactive wizard (Step 5/6) — supplies a StepConfirm that
prompts the user before each sub-step and a StepListener that
drives the spinner / checklist UI.
• The CLI's oracular deploy firebase-setup-full — passes
interactive: false and accepts the defaults (run every step).
• Individual oracular deploy <thing> commands — call only the
specific sub-step method they care about.
All steps return SetupStepResult; nothing throws on user-facing failures, so a partial run can always be resumed by re-invoking runAll (every "ensure" call is idempotent).
Constructors
- FirebaseSetupOrchestrator(SetupConfig config, {FirebaseService? firebase, FirebaseBillingService? billing, FirebaseInitializer? initializer, HostingSiteManager? hosting, ArtifactCleanupService? cleanup, ProcessRunner? runner})
Properties
- billing → FirebaseBillingService
-
Billing detection + Blaze upgrade hand-off.
final
- cleanup → ArtifactCleanupService
-
Artifact Registry + Cloud Run cleanup helper. Only used when
config.setupCloudRunis true.final - config → SetupConfig
-
Project / template configuration loaded from
setup_config.env.final - firebase → FirebaseService
-
Existing Firebase wrapper used for login, FlutterFire / Jaspr JS SDK
configuration, rules deploys, web build, and hosting deploys.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- hosting → HostingSiteManager
-
Hosting site / target manager for
<project>+<project>-beta.final - initializer → FirebaseInitializer
-
Firestore / Storage / Auth bootstrap helpers.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
resetServiceAccountIamGate(
) → void - Resets the IAM gate so it prompts again on the next call. Exposed for tests and for the rare CLI flow that wants to force a re-prompt.
-
runAll(
{StepConfirm? confirm, StepListener? onStep, StepFailureHandler? onFailure, bool interactive = true, bool failFast = true}) → Future< OrchestratorReport> - Run every applicable sub-step in order and return an aggregate report.
-
runApplyArtifactCleanupPolicy(
{String repository = 'oracular'}) → Future< SetupStepResult> -
runBillingCheck(
{bool interactive = true}) → Future< SetupStepResult> -
runBuildWeb(
) → Future< SetupStepResult> -
runCapCloudRunRevisions(
) → Future< SetupStepResult> -
runConfigureClient(
) → Future< SetupStepResult> -
runDeployFirestoreRules(
) → Future< SetupStepResult> -
runDeployHostingBeta(
) → Future< SetupStepResult> -
runDeployHostingRelease(
) → Future< SetupStepResult> -
runDeployStorageRules(
) → Future< SetupStepResult> -
runEnableAuthProviders(
{bool interactive = true}) → Future< SetupStepResult> -
runEnableFirebaseApis(
{bool interactive = true}) → Future< SetupStepResult> - Enable the Firebase APIs every project needs (firebase, firestore, firebasestorage, firebasehosting, identitytoolkit, serviceusage).
-
runEnableServerApis(
) → Future< SetupStepResult> -
runEnsureArtifactRegistryRepo(
{String repository = 'oracular'}) → Future< SetupStepResult> -
runFirebaseLogin(
) → Future< SetupStepResult> -
runFirestoreInit(
) → Future< SetupStepResult> -
runGcloudLogin(
) → Future< SetupStepResult> -
runHostingInit(
) → Future< SetupStepResult> -
runStorageInit(
) → Future< SetupStepResult> -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
fixHintFor(
WizardSubStep step) → String - Public re-export of the per-step fix hint registry, for callers (e.g. the wizard UI) that want to display "to retry, run …".