FirebaseCommand class

Generates Firebase configuration for both Android & iOS platforms.

The FirebaseCommand sets up Firebase configuration files for Flutter applications by running the flutterfire CLI tool with appropriate parameters. It supports:

  • Flavor-specific Firebase configuration
  • Multiple platform targeting (Android, iOS, Web)
  • CI/CD environment integration with service accounts
  • Configuration regeneration control
  • Automatic flutterfire installation validation

Usage

Basic Firebase setup:

morpheme generate firebase

Setup for specific flavor:

morpheme generate firebase --flavor dev

Force overwrite existing configuration:

morpheme generate firebase --overwrite

With custom morpheme.yaml path:

morpheme generate firebase --morpheme-yaml path/to/morpheme.yaml

Configuration

The command reads Firebase configuration from morpheme.yaml:

flavors:
  dev:
    firebase:
      project_id: "your-project-id"
      token: "optional-auth-token"
      platform: "android,ios"
      output: "lib/firebase_options.dart"
      android_package_name: "com.example.app"
      ios_bundle_id: "com.example.app"
      web_app_id: "web-app-id"
      service_account: "path/to/service-account.json"
      enable_ci_use_service_account: true

Output

  • Generates firebase_options.dart with Firebase configuration
  • Reports success or failure with detailed feedback
  • Handles CI/CD environments with service account authentication

Dependencies

  • Requires flutterfire_cli to be installed globally
  • Valid morpheme.yaml configuration file
  • Service account JSON file for CI/CD environments (optional)

Exceptions

Throws FileSystemException if morpheme.yaml is missing or invalid. Throws ProcessException if flutterfire command fails to execute.

Inheritance

Constructors

FirebaseCommand()
Creates a new instance of FirebaseCommand.

Properties

aliases → List<String>
Alternate names for this command.
no setterinherited
argParser → ArgParser
The argument parser for this command.
no setterinherited
argResults → ArgResults?
The parsed argument results for this command.
no setterinherited
category → String
The command's category.
no setteroverride
description → String
A description of this command, included in usage.
no setteroverride
globalResults → ArgResults?
The parsed global argument results.
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
hidden → bool
Whether or not this command should be hidden from help listings.
no setterinherited
invocation → String
A single-line template for how to invoke this command (e.g. "pub get package").
no setterinherited
name → String
The name of this command.
no setteroverride
parent → Command?
The command's parent command, if this is a subcommand.
no setterinherited
runner → CommandRunner?
The command runner for this command.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
subcommands → Map<String, Command>
An unmodifiable view of all sublevel commands of this command.
no setterinherited
suggestionAliases → List<String>
Alternate non-functional names for this command.
no setterinherited
summary → String
A short description of this command, included in parent's CommandRunner.usage.
no setterinherited
takesArguments → bool
Whether or not this command takes positional arguments in addition to options.
no setterinherited
usage → String
Generates a string displaying usage information for this command.
no setterinherited
usageFooter → String?
An optional footer for usage.
no setterinherited

Methods

addSubcommand(Command command) → void
Adds Command as a subcommand of this.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
printUsage() → void
Prints the usage information for this command.
inherited
run() → void
Runs this command.
override
toString() → String
A string representation of this object.
inherited
usageException(String message) → Never
Throws a UsageException with message.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited