@seibert/firestore-backup-function
v1.1.3
Published
A small helper function to initialize a Firebase Function which creates Firestore backups according to the given schedule
Downloads
265
Readme
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";
// Note that all of these parameters are optional and use a reasonable default
exports.firestoreBackup = createFirestoreBackupFunction({
// The ID of the Firebase project. (default: process.env.GCP_PROJECT || process.env.GCLOUD_PROJECT)
projectId: "my-firebase-project",
// The schedule for your backup. (default: "every day 03:00")
schedule: "every 24 hours",
// The URI of the bucket backups are saved to. (default: `gs://${ projectId }-firestore-backup`)
bucketUri: "gs://my-backup-bucket",
// How long until your backup function runs into a timeout (max and default: 540 seconds)
timeoutSeconds: 300,
// List of regions the cloud function is deployed to (default: ["europe-west1"])
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/