You can install (and [manage](https://firebase.google.com/docs/extensions/manage-installed-extensions.md.txt)) any
of the official Firebase extensions using either the Firebase console,
the [Firebase CLI](https://firebase.google.com/docs/cli.md.txt) (command-line interface), or using an
autogenerated SDK.

Make sure to review the
[differences](https://firebase.google.com/docs/extensions/overview-use-extensions.md.txt#console-vs-cli) in the
supported actions for each installation method.
<button value="console" default="">Firebase console</button> <button value="cli">Firebase CLI</button> <button value="sdk">Autogenerated SDK</button>

<br />

<br />


> [!WARNING]
> To try out a Firebase Extension for the first time, we recommend that you install the extension in a test or development project.

<br />

To install or manage extensions, you must be assigned one of these roles:
[Owner or Editor](https://firebase.google.com/docs/projects/iam/roles-basic.md.txt) or
[Firebase Admin](https://firebase.google.com/docs/projects/iam/roles-predefined-all-products.md.txt).

## Before you begin

1. If you haven't already, [add Firebase to your project](https://firebase.google.com/docs/guides).

2. If you haven't already, upgrade your project to the
   [pay-as-you-go Blaze pricing plan](https://firebase.google.com/pricing.md.txt).

   Although there's no charge for installing an extension, you might be charged
   for your use of Firebase services or Cloud services (such as
   [Cloud Secret Manager](https://cloud.google.com/secret-manager/pricing)),
   if your usage exceeds the services' free tier.

   > [!CAUTION]
   > Since Firebase Extensions requires that your project be on the Blaze pricing plan, we strongly recommend that you set up [**budget alerts**](https://firebase.google.com/docs/projects/billing/budget-alerts.md.txt) and [**spend caps on *Cloud Run functions***](https://firebase.google.com/docs/projects/billing/spend-caps.md.txt). Firebase Extensions relies on Cloud Run functions, so a spend cap on Cloud Run functions is essentially a spend cap on Firebase Extensions, too.

## **Step 1**: View detailed information about an extension

This step is optional, but strongly recommended.

Before installing a Firebase Extension, we recommend that you
review detailed information about the extension, including:

- How the extension works, any pre-installation tasks, and details about the extension
- General identifying information and description
- Whether the extension's tasks require a billing account
- Google services (APIs) and [access roles](https://firebase.google.com/docs/extensions/permissions-granted-to-extension.md.txt) required for operation
- [Resources](https://firebase.google.com/docs/extensions/overview-use-extensions.md.txt#resources) created for the extension (like functions)
- Descriptions of user-configurable parameters

**To view an extension's detailed information:**

1. Browse official Firebase extensions in the [Extensions Hub](https://extensions.dev/extensions).

2. Click an extension's card to:

   - Display the detailed information for the extension.

   - Find the link to the extension's source code in the
     [Firebase Extensions source repository](https://github.com/firebase/extensions).

     In the extension's
     [*extension directory*](https://firebase.google.com/docs/extensions/overview-use-extensions.md.txt#view-source-code),
     you can view this detailed information in the `README`.

## **Step 2**: Install an extension

During the installation process, you'll be prompted to review the basic
specifications for the extension (such as APIs enabled,
[resources](https://firebase.google.com/docs/extensions/overview-use-extensions.md.txt#resources) created,
[access](https://firebase.google.com/docs/extensions/permissions-granted-to-extension.md.txt) granted, etc.).
You'll be notified of any billing requirements, and you'll also be prompted to
specify values for the extension's configurable parameters.

1. Browse official Firebase extensions in the [Extensions Hub](https://extensions.dev/extensions).

2. Click an extension's card, then review the detailed information for the
   extension, which can offer specific usage instructions and any
   pre-installation tasks.

3. Click **Install**, then follow the on-screen instructions to install
   the extension.

   > [!NOTE]
   > **Note:** Deploying and provisioning an extension may take the system 3-5 minutes.

## **Step 3**: Complete post-install setup

Some extensions have required or optional steps for you to complete before using
them. Find these instructions in your extension's post-install details page in
the Extensions dashboard of the Firebase console (the specific link to
the dashboard is displayed in the terminal after installation).

You can also find these instructions in the `POSTINSTALL.md` file included in
the [extension's source directory](https://firebase.google.com/docs/extensions/overview-use-extensions.md.txt#view-source-code).

### Create Firebase resources

If you configured the extension to use Firebase resources (Cloud Firestore
collections, Realtime Database paths, Cloud Storage buckets) that don't already exist,
create them before using the extension.

### Create Eventarc event handlers

Some extensions publish to [Eventarc](https://cloud.google.com/eventarc)
when important events happen during execution. If an extension publishes events,
and you enabled events during installation, you can write functions that react
to these events with your own custom logic. This can be useful, for example, to
notify users when long-running tasks complete, or to post-process the output of
an extension function.

See the extension's documentation for a list of events (if any) it publishes.
For example, see the
[event types for the Run Payments with Stripe extension](https://github.com/stripe/stripe-firebase-extensions/blob/98c97775d54fb0be4601864b74d2fe5ce24dab83/firestore-stripe-payments/extension.yaml).

Then, see [Custom event triggers](https://firebase.google.com/docs/functions/custom-events.md.txt#handle-events) for
information on writing Eventarc event handlers.

> [!IMPORTANT]
> **Important:** Enabling events can result in charges if you exceed the free quota. See [Eventarc pricing](https://cloud.google.com/eventarc/pricing).

## Install multiple extension instances

You can install the same extension more than once in the same project.
Each installed instance can have its own customized configuration and its own
extension resources. You identify and refer to each installed instance using its
*instance ID*, which is unique within your project.

You'll
be prompted to confirm or edit the instance ID of each additional instance of
the extension you install.

## Next Steps

- [View the details and the
  configuration](https://firebase.google.com/docs/extensions/manage-installed-extensions?platform=console#view-details-installed-extension)
  of your installed extension in the Firebase console.

- [Monitor the activity](https://firebase.google.com/docs/extensions/manage-installed-extensions.md.txt#monitor)
  of your installed extension, including checks on its health, usage, and logs.

- Using the Firebase console,
  [manage](https://firebase.google.com/docs/extensions/manage-installed-extensions.md.txt?platform=console) your
  installed extension. For official Firebase extensions, you can reconfigure
  or uninstall your extension, as well as update your extension to the latest
  version.

- As a best practice for all projects, make sure to set up
  [budget alerts](https://firebase.google.com/docs/projects/billing/budget-alerts.md.txt) and
  [spend caps](https://firebase.google.com/docs/projects/billing/spend-caps.md.txt). Also, monitor your
  [*Usage and billing* dashboard](https://console.firebase.google.com/project/_/usage)
  in the Firebase console.