Understand Firebase projects

This page offers brief overviews of several important concepts about Firebase projects. When available, follow the links to find more detailed information about features, services, tooling, and best practices.

Relationship between Firebase projects, apps, and products

A Firebase project is the top-level entity for Firebase. In a project, you can register your Apple, Android, or web apps. After you register your apps with Firebase, you can add the Firebase SDKs for any number of Firebase products , like Analytics , Cloud Firestore , Performance Monitoring , or Remote Config .

Learn more detailed information about this process in the Getting Started guide for your platform:
iOS+ | Android | web | Unity | C++ | Flutter .

Understanding the hierarchy of Firebase projects

Diagram showing the basic hierarchy of a Firebase project, including
          the project, its registered apps, and its provisioned resources and
          servicesThis diagram shows the basic hierarchy of a Firebase project. Here are the key relationships:

  • A Firebase projectis like a container for all your apps and any resources and services provisioned for the project.

  • A Firebase project can have one or more Firebase Appsregistered to it (for example, both the iOS and Android versions of an app, or both the free and paid versions of an app).

  • All Firebase Apps registered to the same Firebase project share and have access to all the same resources and services provisioned for the project. Here are some examples:

    • All the Firebase Apps registered to the same Firebase project share the same backends, like Firebase Hosting , Authentication , Realtime Database , Cloud Firestore , Cloud Storage , and Cloud Functions .

    • All Firebase Apps registered to the same Firebase project are associated with the same Google Analytics property, where each Firebase App is a separate data stream in that property.

Relationship between Firebase projects and Google Cloud

When you create a new Firebase project, you're actually creating a Google Cloud project behind the scenes. You can even create a Google Cloud project first, then add Firebase to the project later. You can think of a Google Cloud project as a virtual container for data, code, configuration, and services.

Note that for all Firebase projects, Firebase automatically adds a label of firebase:enabled within the Labels page for your project in the Google Cloud console. Learn more about this label in our FAQ .

Since a Firebase project is a Google Cloud project:

  • You can interact with a project in the Firebase console as well as in the Google Cloud console and in the Google APIs console .

  • You can use products and APIs from both Firebase and Google Cloud in a project.

  • IAM permissions and roles for a project are shared across Firebase and Google Cloud . Any access a project member has to your Google Cloud project will also apply to your Firebase project (and vice-versa).

  • Billing for a project is shared across Firebase and Google Cloud . If billing is enabled on your Google Cloud project, then your Firebase project will be on Firebase's pay-as-you-go Blaze pricing plan.

  • Unique identifiers for a project (like project number and project ID ) are shared across Firebase and Google Cloud .

  • Deleting a project deletes it across Firebase and Google Cloud .

  • Deleting or modifying a resource or data within a project applies across Firebase and Google Cloud .

Setting up a Firebase project and registering apps

You can set up a Firebase project and register apps in the Firebase console (or, for advanced use cases, via the Firebase Management REST API or the Firebase CLI ). When you set up a project and register apps, you need to make some organizational decisions and add Firebase-specific configuration information to your local projects.

For production apps, you need to set up a clear development workflow, which usually involves using multiple environments. Review our documentation on developer workflows , including general best practices and general security guidelines for setting up Firebase projects and registering apps to create your development workflow.

Interacting with a Firebase project

Besides the product SDKs, you can directly interact with a Firebase project using several different tools and interfaces.

Firebase console

The Firebase console offers the richest environment for managing Firebase products, apps, and project-level settings.

<span class=Firebase console - project overview screen" class="attempt-right screenshot" style="max-width: calc((100% - 40px)/1.75);">

The left-side panel of the console lists the Firebase products, organized by top-level categories. At the top of the left-side panel, access a project's settings by clicking . A project's settings include integrations , access permissions , and billing .

The middle of the console displays buttons that launch setup workflows to register various types of apps. After you start using Firebase, the main area of the console changes into a dashboard that displays stats on the products you use.

Note that since a Firebase project is also a Google Cloud project, you might find that various tasks or products require you to use the Google Cloud console instead of the Firebase console.

Firebase CLI (a command line tool)

Firebase also offers the Firebase CLI for configuring and managing specific Firebase products, like Firebase Hosting , Cloud Functions for Firebase , and Firebase Extensions .

After installing the CLI, you have access to the global firebase command . Use the CLI to link your local app directory to a Firebase project , then deploy new versions of Firebase-hosted content or updates to functions.

Firebase Management REST API

Using the Firebase Management REST API , you can programmatically manage a Firebase project. For example, you can programmatically register an app with a project or list the apps that are already registered ( iOS+ | Android | web ).

Firebase project identifiers

A Firebase project can be identified in the Firebase backend and in various developer interfaces using different identifiers, including the project name , the project number , and the project ID .

The project name

When you create a project, you provide a project name. This identifier is the internal-only name for a project in the Firebase console , the Google Cloud console , and the Firebase CLI . The project name is not exposed in any publicly visible Firebase or Google Cloud product, service, or resource; it simply serves to help you more easily distinguish among multiple projects.

You can edit a project name at any time in the Project settings of the Firebase console. The project name is displayed in the top pane.

The project number

A Firebase project (and its associated Google Cloud project ) has a project number. This is the Google-assigned globally unique canonical identifier for the project. Use this identifier when configuring integrations and/or making API calls to Firebase, Google, or third-party services.

You cannot edit a project number. If you delete a project, the project number is also deleted and can never be used again by any other project.

Find the project number

Find your Firebase project's project number using one of these options:

  • Using the Firebase console: Click Project settings . The project number is displayed in the top pane.

  • Using the Firebase CLI: Run firebase projects:list . The project number is displayed along with all the Firebase projects associated with your account.

  • Using the Firebase Management REST API: Call projects.list . The response body contains the project number in the FirebaseProject object.