Firebase Extensions help you reduce time spent on development, maintenance, and growth of your app.
When you find a Firebase Extension that solves a need for your app or project, all you do is install and configure the extension. If you need multiple configurations of the extension, you can install the extension multiple times, with a different configuration for each instance you install.
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.
To install an extension, your project must be on the Blaze (pay as you go) plan. Although there is no charge for installing an extension, you might be charged for your use of Firebase services or Cloud services such as Cloud Secret Manager, if your usage exceeds the services' free tier.
You can also evaluate extensions before installing them on a project using the Extensions emulator, a component of the Firebase Local Emulator Suite.
Official Firebase extensions
The official Firebase extensions are developed and tested by Firebase and Firebase Extensions partner services. These extensions are reliable and secure.
Browse official Firebase extensions
Browse official Firebase extensions in the Extensions Hub.
Early access partner extensions
Early access partner extensions are developed by participants in the extension publishers’ early access program. They are not built or tested by Google. Early access partner extensions are provided "AS IS" without any warranty, express or implied, from Google. Google disclaims all liability for any damages, direct or indirect, resulting from the use of the extension.
To learn more about publishing your own extension, sign up for the extension publishers’ early access program.
View the source code of an extension
To find a link to the source code for one the official Firebase extensions, click Learn more on the extension's card in the Extensions Hub.
To find a link to the source code for an early access partner extension, start
the installation flow using either the extension's console installation link or
with the CLI's
ext:install command. The link to the source code is displayed
along with other information about the extension. You can cancel installation if
you just want to examine the source.
Contents of an extension's source code
An extension's source directory includes:
extension.yaml file — Contains the extension's metadata and defines the resources created, the Google APIs and access roles required for operation, and any user-configured parameters (environment variables) for the extension
functions directory — Contains the files for the source code for the extension
README file — Lists the extension's metadata (but in more human-readable format) as well as the content from the PREINSTALL file
PREINSTALL file — Describes how the extension works, any necessary pre-installation tasks, configuration requirements, and details about the extension
POSTINSTALL file — Describes specific usage instructions and any further integration requirements
Resources for an extension
Every Firebase project contains several types of "resources". Project resources can include things like deployed Cloud Functions, database instances, Cloud Storage buckets, Cloud Scheduler jobs, and Cloud Secret Manager data.
When you install an extension, Firebase creates new extension-instance-specific resources in your project. These resources are required by the extension to operate.
Note that, if you uninstall an instance of an extension, all the resources that Firebase created specifically for that instance of the extension to operate (like a set of functions) are deleted. However, the following are not deleted:
Any artifacts created by the extension (like stored images).
Any other resources in your project, like a database instance or Cloud Storage bucket. Even if the extension interacted with these other resources, they are not extension-specific, so they aren't deleted if the extension is uninstalled.
Using the Firebase console or the Firebase CLI
|View detailed information (pre-installation)
|View configuration (post-installation)