firebaseSpec top-level property
Completion spec for firebase CLI
Implementation
final FigSpec firebaseSpec =
FigSpec(name: 'firebase', description: '', subcommands: [
Subcommand(
name: 'appdistribution:distribute',
description: 'Upload a distribution',
args: [
Arg(name: 'distribution-file')
],
options: [
Option(
name: '--app',
description: 'The app id of your Firebase app',
args: [Arg()]),
Option(
name: '--release-notes',
description: 'Release notes to include with this distribution'),
Option(
name: '--release-notes-file',
description:
'Path to file with release notes to include with this distribution',
args: [Arg()]),
Option(
name: '--testers',
description:
'A comma separated list of tester emails to distribute to',
args: [Arg(isVariadic: true)]),
Option(
name: '--testers-file',
description:
'Path to file with a comma separated list of tester emails to distribute to',
args: [Arg()]),
Option(
name: '--groups',
description:
'A comma separated list of group aliases to distribute to',
args: [Arg(isVariadic: true)]),
Option(
name: '--groups-file',
description:
'Path to file with a comma separated list of group aliases to distribute to',
args: [Arg(isVariadic: true)]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'apps:android:sha:create',
description: 'Add a SHA certificate hash for a given app id',
args: [
Arg(name: 'appId'),
Arg(name: 'shaHash')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'apps:android:sha:delete',
description: 'Delete a SHA certificate hash for a given app id',
args: [
Arg(name: 'appId'),
Arg(name: 'shaId')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'apps:create',
description: 'Create a new Firebase app',
args: [
Arg(name: 'platform'),
Arg(name: 'displayName')
],
options: [
Option(
name: ['-a', '--package-name'],
description: 'Required package name for the Android app',
args: [Arg()]),
Option(
name: ['-b', '--bundle-id'],
description: 'Required bundle id for the iOS app',
args: [Arg()]),
Option(
name: ['-s', '--app-store-id'],
description: '(optional) app store id for the iOS app',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'auth:export',
description:
'Export accounts from your Firebase project into a data file',
args: [
Arg(name: 'dataFile', template: 'filepaths')
],
options: [
Option(
name: '--format',
description:
'Format of exported data (csv, json). Ignored if [dataFile] has format extension',
args: [
Arg(suggestions: [
FigSuggestion(name: 'csv'),
FigSuggestion(name: 'json')
])
]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'auth:import',
description:
'Import users into your Firebase project from a data file(.csv or .json)',
args: [
Arg(name: 'dataFile', template: 'filepaths')
],
options: [
Option(
name: '--hash-algo',
description:
'Specify the hash algorithm used in password for these accounts',
args: [Arg()]),
Option(
name: '--hash-key',
description: 'Specify the key used in hash algorithm',
args: [Arg()]),
Option(
name: '--salt-separator',
description:
'Specify the salt separator which will be appended to salt when verifying password. only used by SCRYPT now',
args: [Arg()]),
Option(
name: '--rounds',
description: 'Specify how many rounds for hash calculation',
args: [Arg()]),
Option(
name: '--mem-cost',
description:
'Specify the memory cost for firebase scrypt, or cpu/memory cost for standard scrypt',
args: [Arg()]),
Option(
name: '--parallelization',
description: 'Specify the parallelization for standard scrypt',
args: [Arg()]),
Option(
name: '--block-size',
description:
'Specify the block size (normally is 8) for standard scrypt',
args: [Arg()]),
Option(
name: '--dk-len',
description: 'Specify derived key length for standard scrypt',
args: [Arg()]),
Option(
name: '--hash-input-order',
description:
'Specify the order of password and salt. Possible values are SALT_FIRST and PASSWORD_FIRST. MD5, SHA1, SHA256, SHA512, HMAC_MD5, HMAC_SHA1, HMAC_SHA256, HMAC_SHA512 support this flag',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:get',
description: 'Fetch and print JSON data at the specified path',
args: [Arg(name: 'path')]),
Subcommand(
name: 'database:instances:create',
description: 'Create a realtime database instance',
args: [
Arg(name: 'instanceName')
],
options: [
Option(
name: ['-l', '--location'],
description:
'(optional) location for the database instance, defaults to us-central1',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:instances:list',
description:
'List realtime database instances, optionally filtered by a specified location',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:profile',
description: 'Profile the Realtime Database and generate a usage report',
options: [
Option(
name: ['-o', '--output'],
description: 'Save the output to the specified file',
args: [Arg()]),
Option(
name: ['-d', '--duration'],
description:
'Collect database usage information for the specified number of seconds',
args: [Arg()]),
Option(
name: '--raw',
description:
'Output the raw stats collected as newline delimited json',
args: [Arg()]),
Option(
name: '--no-collapse',
description:
'Prevent collapsing similar paths into \$wildcard locations'),
Option(
name: ['-i', '--input'],
description:
'Generate the report based on the specified file instead of streaming logs from the database',
args: [Arg()]),
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, use default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:push',
description: 'Add a new JSON object to a list of data in your Firebase',
args: [
Arg(name: 'path', template: 'filepaths')
],
options: [
Option(
name: ['-d', '--data'],
description: 'Specify escaped JSON directly',
args: [Arg()]),
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, use default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:remove',
description: 'Remove data from your Firebase at the specified path',
args: [
Arg(name: 'path', template: 'filepaths')
],
options: [
Option(
name: ['-y', '--confirm'],
description: 'Pass this option to bypass confirmation prompt'),
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, use default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:set',
description:
'Store JSON data at the specified path via STDIN, arg, or file',
args: [
Arg(name: 'path', template: 'filepaths')
],
options: [
Option(
name: ['-d', '--data'],
description: 'Specify escaped JSON directly',
args: [Arg()]),
Option(
name: ['-y', '--confirm'],
description: 'Pass this option to bypass confirmation prompt'),
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, use default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:settings:get',
description:
'Store JSON data at the specified path via STDIN, arg, or file',
args: [
Arg(name: 'path', template: 'filepaths')
],
options: [
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, uses default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:settings:set',
description: 'Set the realtime database setting at path',
args: [
Arg(name: 'path'),
Arg(name: 'value')
],
options: [
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, use default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'database:update',
description:
'Update some of the keys for the defined path in your Firebase',
args: [
Arg(name: 'path', template: 'filepaths')
],
options: [
Option(
name: ['-d', '--data'],
description: 'Specify escaped JSON directly',
args: [Arg()]),
Option(
name: ['-y', '--confirm'],
description: 'Pass this option to bypass confirmation prompt'),
Option(
name: '--instance',
description:
'Use the database <instance>.firebaseio.com (if omitted, use default database instance)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'deploy',
description: 'Deploy code and assets to your Firebase project',
options: [
Option(
name: ['-p', '--public'],
description:
'Override the Hosting public directory specified in firebase.json'),
Option(
name: ['-m', '--message'],
description: 'An optional message describing this deploy',
args: [Arg()]),
Option(
name: ['-f', '--force'],
description:
'Delete Cloud Functions missing from the current working directory without confirmation'),
Option(
name: '--only',
description:
'Only deploy to specified, comma-separated targets (e.g. "hosting,storage"). For functions, can specify filters with colons to scope function deploys to only those functions (e.g. "--only functions:func1,functions:func2"). When filtering based on export groups (the exported module object keys), use dots to specify group names (e.g. "--only functions:group1.subgroup1,functions:group2)"'),
Option(
name: '--except',
description:
'Deploy to all targets except specified (e.g. "database")',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'emulators:exec',
description:
'Start the local Firebase emulators, run a test script, then shut down the emulators',
args: [
Arg(name: 'script')
],
options: [
Option(
name: '--only',
description:
'Only specific emulators. This is a comma separated list of emulator names. Valid options are: ["auth","functions","firestore","database","hosting","pubsub"]',
args: [Arg()]),
Option(
name: '--inspect-functions',
description:
'Emulate Cloud Functions in debug mode with the node inspector on the given port (9229 if not specified)'),
Option(
name: '--import',
description:
'Import emulator data from a previous export (see emulators:export)',
args: [Arg()]),
Option(
name: '--export-on-exit',
description:
'Automatically export emulator data (emulators:export) when the emulators make a clean exit (SIGINT), when no dir is provided the location of --import [dir] is used'),
Option(name: '--ui', description: 'Run the Emulator UI'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'emulators:export',
description: 'Export data from running emulators',
args: [
Arg(name: 'path', template: 'filepaths')
],
options: [
Option(
name: '--only',
description:
'Only specific emulators. This is a comma separated list of emulator names. Valid options are: ["auth","functions","firestore","database","hosting","pubsub"]',
args: [Arg()]),
Option(
name: '--force',
description: 'Overwrite any export data in the target directory'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'emulators:start',
description: 'Start the local Firebase emulators',
options: [
Option(
name: '--only',
description:
'Only specific emulators. This is a comma separated list of emulator names. Valid options are: ["auth","functions","firestore","database","hosting","pubsub"]',
args: [Arg()]),
Option(
name: '--inspect-functions',
description:
'Emulate Cloud Functions in debug mode with the node inspector on the given port (9229 if not specified)',
args: [Arg()]),
Option(
name: '--import',
description:
'Import emulator data from a previous export (see emulators:export)'),
Option(
name: '--export-on-exit',
description:
'Automatically export emulator data (emulators:export) when the emulators make a clean exit (SIGINT), when no dir is provided the location of --import [dir] is used'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'experimental:functions:shell',
description: 'Launch full Node shell with emulated functions',
options: [
Option(
name: ['-p', '--port'],
description:
'The port on which to emulate functions (default: 5000) (default: 5000)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'ext:configure',
description: 'Configure an existing extension instance',
args: [
Arg(name: 'extensionInstanceId')
],
options: [
Option(
name: '--params',
description: 'Path of params file with .env format',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'ext:info',
description:
'List all the extensions that are installed in your Firebase project',
args: [
Arg(name: 'extensionName')
],
options: [
Option(
name: '--markdown',
description:
'Output info in Markdown suitable for constructing a README file'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'ext:uninstall',
description:
'Uninstall an extension that is installed in your Firebase project by instance ID',
args: [
Arg(name: 'extensionInstanceId')
],
options: [
Option(
name: ['-f', '--force'],
description:
'No confirmation. Otherwise, a confirmation prompt will appear'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'ext:update',
description:
'Update an existing extension instance to the latest version',
args: [
Arg(name: 'extensionInstanceId')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'firestore:delete',
description: 'Delete data from Cloud Firestore',
args: [
Arg(name: 'path')
],
options: [
Option(
name: ['-r', '--recursive'],
description:
'Recursive. Delete all documents and subcollections at and under the specified level. May not be passed along with'),
Option(
name: '--shallow',
description:
'Shallow. Delete only documents at the specified level and ignore documents in subcollections. This action can potentially orphan documents nested in subcollections. May not be passed along with -r'),
Option(
name: '--all-collections',
description:
'Delete all. Deletes the entire Firestore database, including all collections and documents. Any other flags or arguments will be ignored'),
Option(
name: ['-y', '--yes'],
description:
'No confirmation. Otherwise, a confirmation prompt will appear'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'firestore:indexes',
description: 'List indexes in your project\'s Cloud Firestore database',
options: [
Option(
name: '--pretty',
description:
'Pretty print. When not specified the indexes are printed in the JSON specification format'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'functions:config:clone',
description: 'Clone environment config from another project',
options: [
Option(
name: '--from',
description: 'The project from which to clone configuration',
args: [Arg()]),
Option(
name: '--only',
description: 'A comma-separated list of keys to clone',
args: [Arg()]),
Option(
name: '--except',
description: 'A comma-separated list of keys to not clone',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'functions:config:get',
description: 'Fetch environment config stored at the given path',
args: [
Arg(name: 'path')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'functions:config:set',
description: 'Set environment config with key=value syntax',
args: [
Arg(name: 'values', isVariadic: true, description: 'Key=value')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'functions:log',
description: 'Read logs from deployed functions',
options: [
Option(
name: '--only',
description:
'Only show logs of specified, comma-separated functions (e.g. "funcA,funcB")',
args: [Arg()]),
Option(
name: ['-n', '--lines'],
description: 'Specify number of log lines to fetch',
args: [Arg()]),
Option(name: '--open', description: 'Open logs page in web browser'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'functions:shell',
description: 'Launch full Node shell with emulated functions',
options: [
Option(
name: ['-p', '--port'],
description: 'The port on which to emulate functions',
args: [Arg()]),
Option(
name: '--inspect-functions',
description:
'Emulate Cloud Functions in debug mode with the node inspector on the given port (9229 if not specified)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(name: 'help', description: 'Display help information', options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:channel:create',
description: 'Create a Firebase Hosting channel',
args: [
Arg(name: 'channelId')
],
options: [
Option(
name: ['-e', '--expires'],
description:
'Duration string (e.g. 12h or 30d) for channel expiration, max 30d',
args: [Arg()]),
Option(
name: '--site',
description: 'Site for which to create the channel',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:channel:delete',
description: 'Delete a Firebase Hosting channel',
args: [
Arg(name: 'channelId')
],
options: [
Option(
name: '--site',
description: 'Site in which the channel exists',
args: [Arg()]),
Option(
name: ['-f', '--force'],
description: 'Delete without confirmation'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:channel:deploy',
description: 'Deploy to a specific Firebase Hosting channel',
args: [
Arg(name: 'channelId')
],
options: [
Option(
name: ['-e', '--expires'],
description:
'Duration string (e.g. 12h, 30d) for channel expiration, max 30d; defaults to 7d',
args: [Arg()]),
Option(
name: '--only',
description: 'Only create previews for specified targets'),
Option(
name: '--open',
description: 'Open a browser to the channel after deploying'),
Option(
name: '--no-authorized-domains',
description: 'Do not sync channel domains with Firebase Auth'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:channel:list',
description: 'List all Firebase Hosting channels for your project',
options: [
Option(
name: '--site',
description: 'List channels for the specified site',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:channel:open',
description: 'Opens the URL for a Firebase Hosting channel',
args: [
Arg(name: 'channelId')
],
options: [
Option(
name: '--site',
description: 'The site to which the channel belongs',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:clone',
description: 'Clone a version from one site to another',
args: [
Arg(name: 'source'),
Arg(name: 'targetChannel')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:disable',
description: 'Stop serving web traffic to your Firebase Hosting site',
options: [
Option(name: ['-y', '--confirm'], description: 'Skip confirmation'),
Option(
name: ['-s', '--site'],
description: 'The site to disable',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:sites:create',
description: 'Create a Firebase Hosting site',
args: [
Arg(name: 'siteId')
],
options: [
Option(
name: '--app',
description: 'Specify an existing Firebase Web App ID',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:sites:delete',
description: 'Delete a Firebase Hosting site',
args: [
Arg(name: 'siteId')
],
options: [
Option(
name: ['-f', '--force'],
description: 'Delete without confirmation'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:sites:get',
description: 'Print info about a Firebase Hosting site',
args: [
Arg(name: 'siteId')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'hosting:sites:list',
description: 'List Firebase Hosting sites',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'init',
description: 'Setup a Firebase project in the current directory',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(name: 'login', description: 'Log the CLI into Firebase', options: [
Option(
name: '--no-localhost',
description:
'Copy and paste a code instead of starting a local server for authentication'),
Option(
name: '--reauth',
description: 'Force reauthentication even if already logged in'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'login:add',
description: 'Authorize the CLI for an additional account',
args: [
Arg(name: 'emai')
],
options: [
Option(
name: '--no-localhost',
description:
'Copy and paste a code instead of starting a local server for authentication'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'login:ci',
description:
'Generate an access token for use in non-interactive environments',
options: [
Option(
name: '--no-localhost',
description:
'Copy and paste a code instead of starting a local server for authentication'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'login:list',
description: 'List authorized CLI accounts',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'login:use',
description: 'Set the default account to use for this project directory',
args: [
Arg(name: 'email')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(name: 'logout', description: 'Log the CLI out of Firebase', args: [
Arg(name: 'email')
], options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'open',
description: 'Quickly open a browser to relevant project resources',
args: [
Arg(name: 'link')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'projects:addfirebase',
description: 'Add Firebase resources to a Google Cloud Platform project',
args: [
Arg(name: 'projectI')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'projects:create',
description:
'Creates a new Google Cloud Platform project, then adds Firebase resources to the project',
args: [
Arg(name: 'projectI')
],
options: [
Option(
name: ['-n', '--display-name'],
description: '(optional) display name for the project',
args: [Arg()]),
Option(
name: ['-o', '--organization'],
description:
'(optional) ID of the parent Google Cloud Platform organization under which to create this project',
args: [Arg()]),
Option(
name: ['-f', '--folder'],
description:
'(optional) ID of the parent Google Cloud Platform folder in which to create this project',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'projects:list',
description: 'List all Firebase projects you have access to',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'remoteconfig:get',
description: 'Get a Firebase project\'s Remote Config template',
options: [
Option(
name: ['-v', '--version-number'],
description: 'Grabs the specified version of the template'),
Option(
name: ['-o', '--output'],
description:
'Write config output to a filename (if omitted, will use the default file path)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'remoteconfig:rollback',
description:
'Roll back a project\'s published Remote Config template to the one specified by the provided version number',
options: [
Option(
name: ['-v', '--version-number'],
description: 'Rollback to the specified version of the template',
args: [Arg()]),
Option(
name: '--force',
description:
'Rollback template to the specified version without confirmation'),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'remoteconfig:versions:list',
description:
'Get a list of Remote Config template versions that have been published for a Firebase project',
options: [
Option(
name: '--limit',
description:
'Limit the number of versions being returned. Pass \'0\' to fetch all versions',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'serve',
description: 'Start a local server for your static assets',
options: [
Option(
name: ['-p', '--port'],
description:
'The port on which to listen (default: 5000) (default: 5000)',
args: [Arg()]),
Option(
name: ['-o', '--host'],
description:
'The host on which to listen (default: localhost) (default: "localhost")',
args: [Arg()]),
Option(
name: '--only',
description:
'Only serve specified targets (valid targets are: hosting, functions)'),
Option(
name: '--except',
description:
'Serve all except specified targets (valid targets are: hosting, functions)',
args: [Arg()]),
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'setup:emulators:database',
description: 'Downloads the database emulator',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'setup:emulators:firestore',
description: 'Downloads the firestore emulator',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'setup:emulators:pubsub',
description: 'Downloads the pubsub emulator',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'setup:emulators:ui',
description: 'Downloads the ui emulator',
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'target',
description: 'Display configured deploy targets for the current project',
args: [
Arg(name: 'typ')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'target:apply',
description: 'Apply a deploy target to a resource',
args: [
Arg(name: 'type'),
Arg(name: 'name'),
Arg(name: 'resources', isVariadic: true)
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'target:clear',
description: 'Clear all resources from a named resource target',
args: [
Arg(name: 'type'),
Arg(name: 'target')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'target:remove',
description: 'Remove a resource target',
args: [
Arg(name: 'type'),
Arg(name: 'resource')
],
options: [
Option(name: ['-h', '--help'], description: 'Output usage information')
]),
Subcommand(
name: 'use',
description: 'Set an active Firebase project for your working directory',
args: [
Arg(name: 'alias or project id', generators: projectAliasesGenerator)
],
options: [
Option(
name: '--add',
description: 'Create a new project alias interactively',
args: [Arg()]),
Option(
name: '--alias',
description: 'Create a new alias for the provided project id',
args: [Arg()]),
Option(
name: '--unalias',
description: 'Remove an already created project alias',
args: [Arg()]),
Option(
name: '--clear', description: 'Clear the active project selection'),
Option(name: ['-h', '--help'], description: 'Output usage information')
])
]);