node-firestore-backupGoogle Firebase Firestore backup tool

联合创作 · 2023-09-30 08:14

firestore-backup


A Google Firebase Firestore backup tool.


codebeat badge


Note: Firebase now has an official backup and restore tool


Read more about how to use it here: https://firebase.google.com/docs/firestore/manage-data/export-import


Installation


Install using npm.



npm install -g firestore-backup


or yarn



yarn global add firestore-backup


Alternatively download the source.



git clone https://github.com/steadyequipment/node-firestore-backup.git


Retrieving Google Cloud Account Credentials



  1. Visit the Firebase Console

  2. Select your project

  3. Navigate to Project Settings (at the time of writing the gear icon button at the top left of the page).

  4. Navigate to Service Accounts

  5. Click Generate New Private Key


This downloaded json file contains the proper credentials needed for firestore-backup to authenticate.


Usage


Backup:



  • -a, --accountCredentials <path> - Google Cloud account credentials JSON file.

  • -B, --backupPath <path>- Path to store the backup.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase


Backup with pretty printing:



  • -P, --prettyPrint - JSON backups done with pretty-printing.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase --prettyPrint


Backup from a starting path:



  • -S, --databaseStartPath <path> - The database collection or document path to begin backup.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase --databaseStartPath /myCollection/document_3


Limit number of requests:



  • -L, --requestCountLimit <number> - The maximum number of requests to be made in parallel.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase --requestCountLimit 2


Exclude top level collections from backup:



  • -E, --excludeCollections <id> - Top level collection id(s) to exclude from backing up.


Note: because of how the command line parsing library works multiple collection ids must be specified as separate parameters.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase --excludeCollections myFirstAnnoyingCollection --excludeCollections mySecondAnnoyingCollection


Exclude paths by regex:



  • --excludePattern <regex> - Patterns to match against paths to exclude from the backup. All subpaths of matched paths will also be excluded.


These patterns can support excluding several different sections of trees, e.g.:



  • Exclude top level collection: ^/collectionToIgnore

  • Exclude sub collections of all documents in a collection: ^/organizations/[^/]*/subcollectionToIgnore

  • Exclude sub collections at a given level: ^/[^/]/[^/]/subcollectionToIgnore

  • Exclude a particular document: ^/organizations/organizationToIgnore


Note: when combining excludePattern with databaseStartPath, the patterns are tested against the full path of the document off the root of database (with a leading slash).


Note: because of how the command line parsing library works multiple exclude patterns must be specified as separate parameters.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase --excludePattern '^/collectionToIgnore' --excludePattern '^/[^/]*/[^/]*/subcollectionToIgnore'


Fetch documents in batches:



  • --batchSize <number - The maximum number of documents to fetch in a single request.


Example:



firestore-backup --accountCredentials path/to/credentials/file.json --backupPath /backups/myDatabase --batchSize 25


Relax:


That's it!


🌈


Contributions


This project has been made much better by it's contributors, feel free to report bugs and make feature requests in the Issue Tracker, fork and create pull requests!

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报