A New Region and API for the Realtime Database

Today we launched TWO new features for the Firebase Realtime Database in beta.

First, we launched a new region for the Realtime Database, in Belgium, in addition to our existing region in the United States. If you would like to store your customer data in Europe, or if you’d like to reduce latency for customers in this part of the world, you can do so today.

Second, we launched a management API for the Realtime Database. With just a REST request you can list, create, update, delete, disable, and re-enable Realtime Database instances.

Once you upgrade your Firebase project to our pay as you go plan, it can contain many Realtime Database instances. You can use multiple database instances to scale beyond the limits of a single database instance, balance load, optimize performance, and more. You can even have a mix of database instances in the United States and Belgium in a single project.

Using the new API, adding another Realtime Database instance to a project is as simple as running curl. You can specify either us-central1 (United States) or europe-west1 (Belgium) for location-id.

curl -H "Content-Type: application/json" 
     -H "Authorization: Bearer $(gcloud auth print-access-token)" 
     -X POST 
https://firebasedatabase.googleapis.com/v1beta/projects/{project-number}/locations/{location-id}/instances?database_id={my-new-database-id} 

Let’s list the instances in our project to see if the new database shows up:

curl -H "Content-Type: application/json" 
     -H "Authorization: Bearer $(gcloud auth print-access-token)" 
https://firebasedatabase.googleapis.com/v1beta/projects/{project-number}/locations/{location-id}/instances 

We get this response, showing both our default Realtime Database instance (with type DEFAULT_DATABASE) and the new one we just created (type USER_DATABASE)

{
  "instances": [
    {
      "name": "projects/{project-number}/locations/{location-id}/instances/{default-database-id}",
      "project": "projects/{project-number}",
      "databaseUrl": "https://{default-database-id}.firebaseio.com",
      "type": "DEFAULT_DATABASE",
      "state": "ACTIVE"
    },
    {
      "name": "projects/{project-number}/locations/{location-id}/instances/{my-new-database-id}",
      "project": "projects/{project-number}",
      "databaseUrl": "https://{my-new-database-id}.firebaseio.com",
      "type": "USER_DATABASE",
      "state": "ACTIVE"
    }
  ]
} 

You can use similar calls to disable, re-enable, and delete instances. Have a look at the documentation to learn more about the commands.

This API is available now, and we have enabled it on existing Firebase projects that have used the Realtime Database in the past month. If you ever use the Google Cloud console, you’ll see the API listed there as well. The Firebase console will soon let you create databases in Belgium as well.

We’re excited about these big advances for the Realtime Database, and we hope you are too!