firestore-backup-function
A small helper function to initialize a Firebase Function which creates Firestore backups according to the given schedule
Setup
To be able to back up data, you'll need to add the importExportAdmin
role to the service account you are using:
gcloud projects add-iam-policy-binding <PROJECT_NAME> --member serviceAccount:<SERVICE_ACCOUNT_NAME>@appspot.gserviceaccount.com --role roles/datastore.importExportAdmin
If the bucket you want to back up to doesn't exist yet create it (make sure it's in an accessible region):
gsutil mb -l <REGION> gs://my-backup-bucket
Usage
Simply add this export to your Firebase project's index.ts/js
to enable Firestore backups for that project:
import { createFirestoreBackupFunction } from "@seibert/firestore-backup-function";
exports.firestoreBackup = createFirestoreBackupFunction({
projectId: "my-firebase-project",
schedule: "every 24 hours",
bucketUri: "gs://my-backup-bucket",
timeoutSeconds: 300,
regions: ["europe-west3"],
});
Restore from backup
To restore from a previously created backup run the following gcloud
command (using the previously defined bucket URI):
gcloud firestore import gs://my-backup-bucket/2017-05-25T23:54:39_76544/