Locations

When you provision a Firestore instance, you must choose a location for the instance. To reduce latency and increase availability, store your data close to the users and services that need it.

You can optionally create multiple databases in your project, each with its own location setting.

Be aware that once you provision a database instance, you cannot change its location setting.

Types of locations

You can store your Firestore data in a multi-region location or a regional location.

Multi-region locations

Select a multi-region location to maximize the availability and durability of your database.

A multi-region location consists of a defined set of regions where multiple replicas of the database are stored. Each replica is either a read-write replica which contains all of the data in the database or a witness replica which does not maintain a full set of data but participates in replication.

By replicating the data between multiple regions, data can continue to be served even with the loss of an entire region. Within a region, data is replicated across zones so that data can continue to be served within that region even with the loss of a zone.

Firestore supports the following multi-region locations:

Multi-region name Multi-region description Read-Write regions Witness region
eur3 Europe europe-west1 (Belgium), europe-west4 (Netherlands) europe-north1 (Finland)
nam5 United States us-central1 (Iowa), us-central2 (Oklahoma—private GCP region) us-east1 (South Carolina)

Note that if your project already has an App Engine app with a location of either us-central or europe-west, then your default Firestore database will be considered multi-regional.

Regional locations

A regional location is a specific geographic place, such as South Carolina. Data in a regional location is replicated in multiple zones within a region. All regional locations are separated from other regional locations by at least 100 miles.

Select a regional location for lower costs, for lower write latency if your application is sensitive to latency, or for co-location with other Google Cloud resources.

Firestore supports the following regional resource locations:

Region nameRegion description
North America
us-west1Oregon
us-west2Los Angeles
us-west3Salt Lake City
us-west4Las Vegas

us-central1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Iowa
northamerica-northeast1Montréal

northamerica-northeast2

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Toronto
us-east1South Carolina
us-east4Northern Virginia

us-east5

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Columbus

us-south1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Dallas
South America

southamerica-west1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Santiago
southamerica-east1São Paulo
Europe
europe-west2London

europe-west1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Belgium

europe-west4

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Netherlands

europe-west8

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Milan

europe-southwest1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Madrid

europe-west9

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Paris

europe-west12

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Turin

europe-west10

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Berlin
europe-west3Frankfurt

europe-north1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Finland
europe-central2Warsaw
europe-west6Zürich
Middle East

me-central1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Doha

me-central2

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Dammam

me-west1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Tel Aviv
Asia
asia-south1Mumbai

asia-south2

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Delhi
asia-southeast1Singapore
asia-southeast2Jakarta
asia-east2Hong Kong
asia-east1Taiwan
asia-northeast1Tokyo
asia-northeast2Osaka
asia-northeast3Seoul
Australia
australia-southeast1Sydney

australia-southeast2

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Melbourne
Africa

africa-south1

This location does not support App Engine. If you plan to use App Engine, you should choose a different location.

Johannesburg

Location SLA

Your Firestore location type determines the Service Level Agreement (SLA) uptime percentage:

Covered service Monthly uptime percentage
Firestore Multi-Region >= 99.999%
Firestore Regional >= 99.99%

Location pricing

Your Firestore location determines the cost of database operations.

For a comprehensive explanation of pricing per region and per region type, see Understand Firestore billing.

View the location of your databases

Use one of the following methods to view the location setting for your databases:

Possible location dependencies due to "location for default Google Cloud resources"

The "location for default Google Cloud resources" is the location setting for any project resources associated with Google App Engine, including the following:

  • default Firestore database instance
  • default Cloud Storage for Firebase bucket with the name format of *.appspot.com
  • Google Cloud Scheduler used specifically with 1st gen scheduled functions

This "location for default Google Cloud resources" is an immutable setting. Also, when you set the location for one of the associated resources, you indirectly set the location for all of them due to their common association with App Engine.

However, with many changes to the Firebase and Google Cloud ecosystem over the years, the associations of resources to App Engine have been changing. Most notably, starting October 30, 2024, all newly provisioned default Cloud Storage for Firebase buckets have the name format *.firebasestorage.app, and they are not associated with App Engine.

Here are the details of what changed in the possible location dependencies:

  • Starting October 30, 2024, if the default Firestore instance and the default Cloud Storage for Firebase bucket are not yet provisioned:

    • Provisioning the default Firestore instance sets the location for any future App Engine app provisioned in the project. However, it does not dictate the location of the future default Cloud Storage bucket.

    • Provisioning the default Cloud Storage bucket no longer provisions an App Engine app. Thus, the location of the default Cloud Storage bucket does not dictate the location of the future default Firestore instance.

  • Starting October 30, 2024, if the default Firestore instance has already been provisioned, but the default Cloud Storage for Firebase bucket has not been provisioned:

    • The existing default Firestore instance does not dictate the location of the future default Cloud Storage bucket (*.firebasestorage.app).
  • Starting October 30, 2024, if the default Cloud Storage for Firebase bucket has already been provisioned (specifically, the *.appspot.com bucket), but the default Firestore instance has not been provisioned:

    • Back when the default Cloud Storage bucket (*.appspot.com) was provisioned, an App Engine app was also provisioned, and thus the location of the future default Firestore instance was set at that time. Even if you delete the *.appspot.com bucket, you can't delete the App Engine app, so the location setting of the future default Firestore instance is already set.

If you used 1st gen scheduled functions, then their location is set to the location for default Google Cloud resources. This is because Cloud Scheduler and App Engine previously had an association with each other. Also, if you set up 1st gen scheduled functions before provisioning other resources that shared this location setting, then you set their location, too.

Note that if you have an App Engine app with a location of either us-central or europe-west, then your location for default Google Cloud resources is considered multi-regional.

Next steps

  • For more information about building applications to meet your latency, availability, and durability requirements, refer to Geography and Regions.