Stay organized with collections
Save and categorize content based on your preferences.
There are two versions of Cloud Functions for Firebase:
Cloud Functions (2nd gen), which
deploys your functions as services on Cloud Run, allowing you to
trigger them using Eventarc and Pub/Sub.
Cloud Functions (1st gen), the original version of functions
with limited event triggers and configurability.
We recommend that you choose Cloud Functions (2nd gen) for new functions
wherever possible. However, we plan to continue supporting Cloud Functions
(1st gen).
This page describes features introduced in Cloud Functions and
provides a comparison between the two product versions.
Cloud Functions (2nd gen)
Cloud Functions is Firebase's next-generation
Functions-as-a-Service offering. Built on Cloud Run and
Eventarc, Cloud Functions (2nd gen) brings enhanced
infrastructure and broader event coverage to Cloud Functions, including:
Built on Cloud Run: Functions are built with
Cloud Build and deployed as Cloud Run services using the
default Cloud Run execution environment.
This gives you the ability to customize your function as you would a
Cloud Run service. Refer to Cloud Run documentation to
explore options for configuring your service, such as memory
limits,
environment variables,
and so forth.
Longer request processing times: Run longer-request workloads such as
processing large streams of data from Cloud Storage or BigQuery.
Larger instance sizes: Run larger in-memory, compute-intensive, and
parallel workloads.
Improved concurrency: Handle multiple concurrent requests with a single
function instance to minimize cold starts and improve latency.
Traffic management: Split traffic between different function revisions
or roll a function back to a prior version.
Eventarc integration: Native support for Eventarc
triggers, bringing all 90+ event sources supported by Eventarc to
Cloud Functions.
Broader CloudEvents support: Support for industry-standard
CloudEvents in all language runtimes, providing
a consistent developer experience.
Because Cloud Functions deploys functions as services on Cloud Run,
Cloud Functions shares resource quotas and limits with
Cloud Run. See Quotas.
Comparison table
Feature
Cloud Functions (1st gen)
Cloud Functions
Image registry
Container Registry or Artifact Registry
Artifact Registry only
Request timeout
Up to 9 minutes
Up to 60 minutes for HTTP-triggered functions
Up to 9 minutes for event-triggered functions
Service account*
Google App Engine service account (PROJECT_ID@appspot.gserviceaccount.com)
Google Cloud default compute service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
Instance size
Up to 8GB RAM with 2 vCPU
Up to 16GiB RAM with 4 vCPU
Concurrency
1 concurrent request per function instance
Up to 1000 concurrent requests per function instance
* This is the default service account used to access Firebase or Cloud APIs
from a running function. It is used by the Firebase Admin SDK when you
initialize without arguments.
If prompted, select the billing account associated with your
Google Cloud project.
In the Filters panel, under Labels,
add a label filter with the key
goog-managed-by and the value cloudfunctions.
Limitations
Cloud Functions for Firebase (2nd gen) does not provide support for Analytics
events.
Though Cloud Functions for Firebase (2nd gen) supports authentication blocking
events, it does not support the same set of basic Authentication events as
1st gen.
However, because 1st gen and 2nd gen
functions can coexist side-by-side in the same source file, you can still
develop and deploy Analytics and basic Authentication triggers in 1st gen
together with 2nd gen functions.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-15 UTC."],[],[],null,["\u003cbr /\u003e\n\nThere are two versions of Cloud Functions for Firebase:\n\n- **Cloud Functions (2nd gen)** , which deploys your functions as services on Cloud Run, allowing you to trigger them using Eventarc and Pub/Sub.\n- **Cloud Functions (1st gen)**, the original version of functions with limited event triggers and configurability.\n\nWe recommend that you choose Cloud Functions (2nd gen) for new functions\nwherever possible. However, we plan to continue supporting Cloud Functions\n(1st gen).\n\nThis page describes features introduced in Cloud Functions and\nprovides a comparison between the two product versions.\n\nCloud Functions (2nd gen)\n\nCloud Functions is Firebase's next-generation\nFunctions-as-a-Service offering. Built on Cloud Run and\nEventarc, Cloud Functions (2nd gen) brings enhanced\ninfrastructure and broader event coverage to Cloud Functions, including:\n\n- **Built on Cloud Run** : Functions are built with Cloud Build and deployed as Cloud Run services using the default [Cloud Run execution environment](//cloud.google.com/run/docs/about-execution-environments). This gives you the ability to customize your function as you would a Cloud Run service. Refer to Cloud Run documentation to explore options for configuring your service, such as [memory\n limits](//cloud.google.com/run/docs/configuring/services/memory-limits), [environment variables](//cloud.google.com/run/docs/configuring/services/environment-variables), and so forth.\n- **Longer request processing times** : Run longer-request workloads such as processing large streams of data from Cloud Storage or BigQuery.\n- **Larger instance sizes**: Run larger in-memory, compute-intensive, and parallel workloads.\n- **Improved concurrency**: Handle multiple concurrent requests with a single function instance to minimize cold starts and improve latency.\n- **Traffic management**: Split traffic between different function revisions or roll a function back to a prior version.\n- **Eventarc integration** : Native support for Eventarc triggers, bringing all 90+ event sources supported by Eventarc to Cloud Functions.\n- **Broader CloudEvents support** : Support for industry-standard [CloudEvents](https://cloudevents.io/) in all language runtimes, providing a consistent developer experience.\n\nSee the [comparison table](#comparison-table) for details.\n\nBecause Cloud Functions deploys functions as services on Cloud Run,\nCloud Functions shares resource quotas and limits with\nCloud Run. See [Quotas](/docs/functions/quotas).\n\nComparison table\n\n| Feature | Cloud Functions (1st gen) | Cloud Functions |\n|-------------------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|\n| Image registry | Container Registry or Artifact Registry | Artifact Registry only |\n| Request timeout | Up to 9 minutes | - Up to 60 minutes for HTTP-triggered functions - Up to 9 minutes for event-triggered functions |\n| Service account\\* | Google App Engine service account (\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e@appspot.gserviceaccount.com) | Google Cloud default compute service account (\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e-compute@developer.gserviceaccount.com) |\n| Instance size | Up to 8GB RAM with 2 vCPU | Up to 16GiB RAM with 4 vCPU |\n| Concurrency | 1 concurrent request per function instance | Up to 1000 concurrent requests per function instance |\n\n\\* This is the default service account used to access Firebase or Cloud APIs\nfrom a running function. It is used by the Firebase Admin SDK when you\n[initialize without arguments](/docs/admin/setup#initialize-sdk).\n\nPricing\n\nFor pricing information, see [Firebase pricing plans](https://firebase.google.com/pricing#cloud-functions).\n\nYou can view your costs associated with Cloud Functions as follows:\n\n1. Go to the [Cloud Billing Reports page](https://console.cloud.google.com/billing/reports) in the Google Cloud console.\n2. If prompted, select the billing account associated with your Google Cloud project.\n3. In the **Filters** panel, under **Labels** , [add a label filter](//cloud.google.com//billing/docs/how-to/reports#filters) with the key `goog-managed-by` and the value `cloudfunctions`.\n\n| **Note:** If you are using Cloud Functions for Firebase (1st gen) and are interested in Cloud Functions, see [Upgrade 1st gen Node.js functions to 2nd gen](/docs/functions/2nd-gen-upgrade).\n\nLimitations\n\nCloud Functions for Firebase (2nd gen) does not provide support for Analytics\nevents.\n\nThough Cloud Functions for Firebase (2nd gen) supports authentication blocking\nevents, it does not support the same set of basic Authentication events as\n1st gen.\n\nHowever, because 1st gen and 2nd gen\nfunctions can coexist side-by-side in the same source file, you can still\ndevelop and deploy Analytics and basic Authentication triggers in 1st gen\ntogether with 2nd gen functions."]]