1.1.3 • Published 3 years ago

@seibert/firestore-backup-function v1.1.3

Weekly downloads
-
License
MIT
Repository
bitbucket
Last release
3 years ago

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/
1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago