Back to the blog
Firebase Extensions shuts down 31 March 2027: migrate to function kits
Firebase & backend

Firebase Extensions shuts down 31 March 2027: migrate to function kits

On 31 March 2027 Firebase shuts down the Extensions service: installed extensions keep running, but can no longer be changed or exported. Since 30 September there are function kits and an official migration guide: here are the steps, in order.

7 October 2026· 6 min·by NaCode Studios
Share
In short

On 31 March 2027 Firebase shuts down the Extensions service: installed extensions keep running, but can no longer be changed or exported. Since 30 September there are function kits and an official migration guide: here are the steps, in order.

On 31 March 2027 Firebase shuts down the Extensions service. Installed extensions keep running, but from that day you can no longer update, reconfigure or uninstall them from the console or the command line, and you can no longer retrieve their configuration. For each extension you use, you need to decide by then whether to migrate it to a function kit, uninstall it or at least export its configuration. Since 30 September Firebase has published official guides for the migration.

Updated 7 October 2026. This text rests on the official Firebase and Google Cloud pages (the guides show 6 October as their last update), on the CLI release notes up to 15.32.1, the latest version, and on the firebase-tools code.

The dates

  • 20 July 2026: the Firebase release notes announce the deprecation of Extensions and its closure on 31 March 2027.
  • 28 September: firebase-tools 15.32.0 ships, the minimum version the guide requires. It introduces function kits (functions:kits:install, functions:kits:uninstall, functions:kits:list) and the migration tools ext:migrate, ext:export and ext:list.
  • 30 September: Firebase announces that function kits are available and that deprecated extensions can be migrated. The same day 15.32.1 ships, with fixes and security updates.

What function kits are

A function kit is an npm package that installs ordinary 2nd gen Cloud Functions into your project. The code lands in the function-kits/ folder of your project and the configuration in an .env file for each Firebase project, and the kit is deployed with firebase deploy. You can run several instances of the same kit: each has an ID, and its functions start with kit-<instance-id>-.

There is no kit for every extension: each publisher decides whether to publish an official one, and the FAQ names only one, for Stream Firestore to BigQuery. Google does not vet unofficial kits. Extensions without a kit are open source, so you can fork one and rewrite it with the 2nd gen APIs, but that is development work and maintaining the code stays with you.

What changes for your project

Installed extensions keep working because they run directly on standard Google Cloud services (Cloud Functions, Eventarc, Cloud Run, Cloud Tasks). After 31 March, however, you cannot change parameters and environment variables, apply fixes and security patches or upgrade dependencies, or download the configuration for a later migration. A kit is updated by changing the version of its npm package and redeploying each instance.

Most extensions still use the 1st gen SDK, tied to older Node.js runtimes. According to Google Cloud's schedule, Node.js 20 is decommissioned on 30 October 2026 and Node.js 22 on 31 October 2027: after that you can neither create nor update functions with that runtime, and existing ones may be disabled.

If you delete the old triggers before the new ones are active, the events in that gap (for example Firestore writes) are lost for good. So deploy the kit with the extension still active, check it, and only then uninstall.

How to migrate

  1. List the extensions from the Extensions page of the Firebase console or with firebase ext:list --project <project-id>: the Replacement Kit column shows which ones have an official npm kit.
  2. Uninstall the ones you no longer use. After 31 March 2027 the uninstall commands disappear, and functions, Secret Manager secrets, Cloud Tasks queues and custom service accounts have to be deleted by hand in the Google Cloud console.
  3. For the ones you keep without migrating, update them and save their configuration with firebase ext:export --mode functions --project <project-id> --instance <instance-id>: after 31 March it will no longer be possible.
  4. The ones to migrate need firebase-tools 15.32.0 or later and an account with the roles listed in the guide, including roles/firebaseextensions.editor and roles/run.developer.
  5. Run firebase ext:migrate --project <project-id>, once per instance: the command has you pick the extension and the instance, updates the extension if needed, installs the kit with the same configuration and deploys it. It then asks whether to uninstall the extension straight away: answer no, which is the default. With --force the extension is deleted right after the deploy, with no checks.
  6. After a few minutes (Eventarc takes a little while to be ready) trigger a test event and read the kit's logs with firebase functions:log --only <function-name>. With the BigQuery export, rows in the tables do not prove the kit works: if the same event reaches both the extension and the kit, they are deduplicated.
  7. When the kit works, uninstall the extension with firebase ext:uninstall <instance-id> --project <project-id> --immediate. To back out before that point, just remove the kit.
Try it on a test project first: the same kit can be deployed to several projects, each with its own configuration in an .env.<project-id> file, if you pass --project to every command.

Costs and effort

According to the FAQ, migration generally does not change billing, because you already pay for the Google Cloud resources the extensions use. During the overlap you may pay a little more, because each write is processed twice, so keep the window short.

For a project with a single extension that already has an official kit, we estimate half a day to a day of work, covering permissions, a trial on a test environment, checking the logs and production [illustrative estimate, to be confirmed against your own project]. Extensions without a kit need a rewrite that has to be estimated case by case, and anyone using a custom Docker repository or a customer-managed KMS key has to follow a manual procedure with gcloud, described in the FAQ.

What we check in a Firebase project

This deadline touches two of our services: internal platforms and cloud software, where we build multi-user platforms integrated with the systems already in use, and mobile app development, which includes backend integration. Firebase news matters for our own products too: SpaceClub, our nightlife platform, is built on Firebase and Google Cloud.

If you ask us for a review, we start from the list of installed extensions and the kits available, and we export the configuration of each one before touching anything. For the ones to migrate we propose a plan with a quote and a roadmap agreed before we intervene: a trial on a test project, a short overlap, checks in the logs and only then the uninstall. We do not estimate the rewrite of an extension that has no kit before we have read its code.

What we do not know yet

  • Which other extensions will get an official kit: it depends on the publishers.
  • When your extensions will stop working if you do not migrate: it depends on the Node.js runtime of each, and the FAQ does not give it extension by extension.
  • When a CLI version will include the fix for functions:lifecycle:run, the command the guide gives for rerunning a failed hook. The firebase-tools changelog says it did not recognise kit instances: the fix has been in the code since 6 October, while 15.32.1 dates from 30 September.

If you want us to look at your Firebase project starting from the list of extensions, get in touch: the work falls under our internal platforms and cloud software service.

Sources

Share

Got a project in mind?

Let us build it together

We can help you turn an idea into a digital product that is solid, fast and ready to grow.

Related articles