firestore CLI tools for data management ðŸ›
MIT License
A CLI for firestore data management.
Features
Must Read Before Use
firestore-tools
CLI is not suitable to use directly on production database or large datasets. It's recommended to use during concept validation, test, data mock of project development.
Install firestore-tools
globally
yarn global add firestore-tools
# or
npm install --global firestore-tools
Alternatively, you can run it using npx
without install, for example
npx firestore-tools ...
Go to GCP IAM & Identity Console, select your firebase project on the top. Then select the firebase adminsdk
service account, create a private key and download the JSON file. This file will be used to authenticate the CLI to access firestore database with admin access.
# if arguments supplied from command line, you will be prompt to give that information
firestore-tools export
# you can also supply arguments from command line
firestore-tools export --key project-id-36257f6a2dcc.json --json data.json -spaces 2 --collections Users,Posts
e
# if arguments supplied from command line, you will be prompt to give that information
firestore-tools import
# you can also supply arguments from command line
firestore-tools import --key project-id-36257f6a2dcc.json --json data.json
i
firestore-tools
use JSON data schema to map the data in firestore database, below is an example.
Any key prefixed with lower dash _
has special meaning of indicating data type and structure.
{
"collection-id": {
"document-id": {
"_data": {
"geopoint": {
"_latitude": 47.7558843,
"_longitude": 122.2646634
},
"null": null,
"number": 123456,
"array": [
"hello",
"world"
],
"reference": {
"_segments": [
"Test",
"referred"
]
},
"map": {
"field": "hellofield"
},
"timestamp": {
"_seconds": 1580848496,
"_nanoseconds": 0
},
"boolean": true,
"string": "helloworld"
},
"_collections": {
"subcollection-id": {
"document-id": {
"_data": {
"text": "hello"
},
"_collections": {}
}
}
}
}
}
}