Blaze
plan users can set up their Firebase Realtime Database for
automatic backups, a self-service feature that enables daily backups of your
Database application data and
rules
in JSON format to a
Cloud Storage
bucket.
Setup
To get started, visit the
Backups
tab
in
the Database section of the Firebase console, and the wizard will guide you
through setting up your automated backups.
To save on storage costs, we enable
Gzip
compression by default, and you can choose to enable a
30-day lifecycle policy
on your bucket to have backups older than 30 days automatically deleted.
You can view the status and backup activity directly in the Firebase console
where you can also start a manual backup. This can be useful for taking specific
timed snapshots or as a safety action before you perform any code changes.
Once set up, a new Cloud Storage bucket will be created for you with the
WRITER permission
for Firebase. You should not store data in this bucket you are not comfortable
with Firebase having access to. Firebase will have no additional access to your
other Cloud Storage buckets or any other areas of Google Cloud.
Restoring from backups
To restore your Firebase from a backup, first download the file from
Cloud Storage to your local disk. This can be done by clicking the filename
within the backup activity section or from the Cloud Storage bucket
interface. If the file is Gzip compressed, first
decompress
the file.
There are two ways you can import your data:
Method 1: Click the Import JSON button in your
Database’s Data section
and select your application data JSON file.
Method 2: You can also issue a CURL request from your command line.
First retrieve a secret from your Firebase, which you can get by visiting
the
Database settings page
.
Then enter the following into your terminal, replacing the
DATABASE_NAME
and
SECRET
fields with your own values:
curl 'https://<DATABASE_NAME>.firebaseio.com/.json?auth=<SECRET>&print=silent' -x PUT -d @<DATABASE_NAME>.json
If you are having trouble restoring a backup from a very large database, please
reach out to our
support team
.
Scheduling
Your Database backup is assigned to a specific hour each day that ensures even
load and highest availability for all backup customers. This scheduled backup
will occur regardless of if you do any manual backups throughout the day.
File naming
Files transferred to your Cloud Storage bucket will be timestamped
(ISO 8601 standard) and use the following naming conventions:
- Database data:
YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_data.json
- Database rules:
YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_rules.json
If
Gzip
is enabled, a
.gz
suffix will be appended to the filenames. You can
easily find the backups from a specific date or time using Cloud Storage
prefix searching.
Gzip compression
By default, we compress your backup files using Gzip compression to save on
storage costs and decrease transfer times. The compressed filesize varies
depending on the data characteristics of your Database, but typical Databases
may shrink to ⅓ their original size, saving you on storage costs and decreasing
the upload time for your backups.
To decompress your Gzipped JSON files, issue a command line command using the
gunzip
binary which is shipped by default for OS-X and most Linux
distributions.
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
Storage 30 day lifecycle
We offer an easy to use configuration switch that enables a default 30 day
object lifecycle policy for your Cloud Storage bucket. When enabled, files in
your bucket will be automatically deleted after 30 days. This helps to reduce
unwanted old backups, saving you on storage costs, and keeping your bucket
directory clean. If you place other files into your Automated Backups bucket,
they will also be deleted with the same policy.
Costs
The backups feature can be enabled for projects on the
Blaze
plan
for no additional cost. However, you will be charged at the
standard
rates
for the backup files
placed in your Cloud Storage bucket. You can enable
Gzip
Compression
and
Storage 30 day
Lifecycle
to reduce your storage
costs.