Overview of environments

For production apps, you need to set up a clear development workflow, especially if you have more than one person working on your app. A development workflow usually involves setting up and managing multiple environments.

Firebase has varying levels of support for developer workflows and the constituent environments. Once you're familiar with the developer workflow terms and assumptions on this page, check out our general best practices and general security guidelines for setting up a Firebase project and your apps.

About environments

In software development, an environment is all the hardware and software that are required to run an instance of an application or system of applications.

A series of environments provides isolation for developing and testing software without impacting users. As shown in the diagram below, environments at a high-level are considered either pre-production or production, and you can have as many pre-production environments as needed. The diagram also describes common practices and features associated with each type of environment.

The process of progressing a feature or release through these environments to production is called a deployment pipeline.

Diagram showing the environments that usually make up the
          deployment pipeline, including development, test and QA, staging,
          and finally production

Types of environments

An environment is composed of the underlying infrastructure that you need to run and support your application, its code, and its data. Expand each of the following terms to review descriptions of some common environments, including tips on the types of data used in each environment type.

Next steps