Firebase Extensions

Firebase Extensions help you deploy functionality to your app quickly withpre-packaged solutions.

Once installed, aFirebase Extension performs a specific task orset of tasks in response to HTTPS requests,Cloud Scheduler events, or totriggering events from other Firebase products, likeCloud Firestore orFirebase Cloud Messaging.

ExploreExtensions HubLearn how to install an extensionLearn how to build your own extension


Firebase Extensions is abeta release. This means that the functionality might change in backward-incompatible ways or have limited support. A beta release is not subject to any SLA or deprecation policy.

Key capabilities

Reduce time spent on development, maintenance, and growth

Since an extension is a packaged solution, all you do is install and configure the extension.

With extensions, you don't spend time researching, writing, and debugging the code that implements functionality or automates a task for your app or project.

ExploreExtensions Hub to find solutions for your app or project.

Built to be configurable and reusable

Each installed instance of an extension is unique.

You specify configuration values for the extension that are unique for your app, project, or use case. Depending on what the extension does, these values could be almost anything: aCloud Firestore path, image dimensions, or a GitHub URL.

You can reuse the same extension in different projects. You can even install multiple instances of the same extension in a single project. Each installed instance can have its own customized configuration.

Integrates the Firebase platform

Extensions can fill that missing piece of your existing architecture.

Extensions can respond to events generated by the Firebase products that you already use in your app. A change in one Firebase product can trigger an extension to perform its task, even a task using another product. For example, a specificRealtime Database write can trigger sending a newFirebase Cloud Messaging notification.

An extension can also integrate your Firebase project with other Google Cloud Platform products (like BigQuery and Google Translate) or even third-party services (like Mailchimp and Bit.ly).

And triggering events aren't limited to Firebase events; you can even trigger an extension directly with an HTTPS request, or at a scheduled interval.

Security and limited access

The application logic for extensions runs on the backend, using Google Cloud Functions, so the code is fully isolated from the client.

Also, extensions themselves are isolated from the rest of your project because an installed extension is grantedlimited access to only the resources and data that are clearly listed before installation.

Zero maintenance

Install and configure an extension for your Firebase project. After that, the backend automatically scales computing resources up and down to match the needs of your extension.

You never worry about credentials, server configuration, provisioning new servers, or decommissioning old ones.

How does it work?

At its core, aFirebase Extension is code that performs a taskwhenever aspecifically defined event occurs in your app or project.

An extension's logic is written usingCloud Functions for Firebase. The functions in an extensiondefine the event providers and the conditions that trigger execution (forexample, aCloud Firestore write, an HTTPS request, or aCloud Schedulerevent).

Even though extensions use functions, a key differentiating feature betweenextensions and functions is that an extension relies upon anextension.yamlspecification file, which explicitly defines:

  • The Google services (APIs) that the extension will use
  • Theaccess roles that theextension requires to operate
  • The extension-specificresources that theextension requires to operate
  • The configurable parameters for the extension

You can install an extension in a project multiple times, with each installedinstance having a different configuration.

When you install an instance of an extension, Firebase does the following:

  1. Prompts you to specify the required configuration values (parameters) to beused for this instance of the extension.
  2. Enables the listed APIs from theextension.yaml file for the project.
  3. Creates a newservice account to beused by this instance of the extension, and assigns it the listed accessroles. The extension instance executes its code using the access granted tothis service account.
  4. Provisions the listedresources for theextension instance (for example, a function).

Note that each installed instance of an extensions has its own service accountand individually-provisioned resources.

In addition to theextension.yaml file, theextension directoryalso includes instructional files, like theREADME, which contain informationto help you complete further configuration tasks or generally use the extension.

After installation, you canreconfigure anextension (specify new parameter values) as well asupdate anextension to a newer version. You can alsouninstall an extensionfrom your project at any time.

Both theFirebase CLI and theFirebase console allow you to install,view, and manage extensions.

Implementation path

Find an extension

Explore the extensions available inExtensions Hub.

Evaluate, install and configure an extension

When you find an extension that solves a need in your app or project, you can evaluate the extension with theExtensions emulator, then install the extension via theFirebase console or theFirebase CLI.

Configure the extension so that it's customized for your app or project.

Manage the extension

View and manage the installed extension using theFirebase console or theFirebase CLI.

Next steps

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-03 UTC.