Firebase CLI Reference

Install the Firebase CLI

You can install the Firebase CLI using a method that matches your operating
system, experience level, and/or use case. Regardless of how you install the
CLI, you have access to the same functionality and the firebase command.

Windows

You can install the Firebase CLI for Windows using one of the following
options:

Option

Description

Recommended for...

standalone binary

Download the standalone binary for the CLI. Then, you can access
the executable to open a shell where you can run the
firebase command.

Print a new
refresh token.
The current CLI session will not be affected.

Store the output token in a secure but accessible way in your CI system.

Use this token when running firebase commands; you have two options:

Store the token as the environment variable FIREBASE_TOKEN. Your system
will automatically use the token.

Run all firebase commands with the --token <token> flag in your
CI system.
The order of precedence for token loading is flag, environment variable,
desired Firebase project.

Note: On any machine with the Firebase CLI installed, you can immediately
revoke access for the specified token by running:
firebase logout --token token

Initialize a Firebase project

Many common tasks performed using the CLI, such as deploying to a Firebase
project, require a project directory. You establish a project directory
using the firebase init command. A project directory is usually the same
directory as your source control root, and after running firebase init, the
directory contains a firebase.json configuration file.

To initialize a new Firebase project, run the following command from within your
app's directory:

firebase init

Note: The firebase init command does not create a new directory. If you're
starting a new app, you must first make a directory, then run firebase init
from within that directory.

The firebase init command steps you through setting up your project directory
and some Firebase products. During project initialization, the Firebase CLI asks
you to:

Select desired Firebase products then prompts you to set configurations for
specific files for the selected products.

To set up a specific Firebase product for your project, refer to that
product's documentation for setup information (for example,
Hosting). Note that you
can always run firebase init later to set up more Firebase products.

Select a default Firebase project.

This step associates the current project directory with a Firebase project so
that project-specific commands (like firebase deploy) run against the
appropriate Firebase project.

The firebase.json file

The firebase init command creates a
firebase.json configuration file in the root of your project directory.

The firebase.json file is required to
deploy assets with the Firebase CLI because it specifies
which files and settings from your project directory are deployed to your
Firebase project. Since some settings can be defined in either your project
directory or the
Firebase console, make sure that you resolve any potential
deployment conflicts.

Serve and test your Firebase project locally

You can view and test your Firebase project on locally hosted URLs before
deploying to production. If you only want to test select features, you can use
a comma-separated list in a flag on the firebase serve command.

Run the following command from the root of your local project directory if you
want to either:

Run any of the following commands from your project directory to emulate your
project using local HTTP functions.

To emulate HTTP functions and hosting for testing on local URLs, use either
of the following commands:

firebase serve

firebase serve --only functions,hosting // uses a flag

To emulate HTTP functions only, use the following command:

firebase serve --only functions

By default, firebase serve only responds to requests from localhost. This
means that you'll be able to access your hosted content from your computer's web
browser but not from other devices on your network. If you'd like to test from
other local devices, use the --host flag:

To deploy to a Firebase project, run the following command from your project
directory:

firebase deploy

By default, firebase deploy creates a release for all deployable resources
in your project directory. To deploy specific Firebase services or features,
use partial deployment.

Note that to deploy resources from a project directory, the project directory
must have a firebase.json file. This file was
automatically created for you by the
firebase init command.

You can optionally add a comment to each of your deployments. This comment will
display with the other deployment information on your project's
Firebase Hosting page.
For example:

firebase deploy -m "Deploying the best new feature ever."

Deployment conflicts for security rules

For Firebase Realtime Database, Cloud Storage for Firebase, and Cloud Firestore,
you can define security rules either in your local project directory or in the
Firebase console.

Note:When you
deploy security rules using the Firebase CLI,
the rules defined in your project directory overwrite any existing rules in the
Firebase console. So, if you choose to define or edit your security rules
using the Firebase console, make sure that you also update the rules defined
in your project directory.

Another option to avoid deployment conflicts is to
use partial deployment and only define rules in the
Firebase console.

Deployment quotas

It's possible (though unlikely) that you might exceed a quota that limits the
rate or volume of your Firebase deployment operations. For example, when
deploying very large numbers of functions, you might receive an HTTP 429 Quota
error message. To solve such issues, try using partial deployment
or requesting quota increases
for specific Firebase services. For example, the quota called Write requests
per 100 seconds per user might help to resolve the Cloud Functions 429
error cited above.