GUI for Firestore Admin SDK (inspired by the official firestore console)
- Clone this repository
- Throw your service account JSON file into
/server/credentials- IMPORTANT: Your files will be ignored by Git (there is a
.gitignorefile in there) - See instructions below how to obtain a service account
- IMPORTANT: Your files will be ignored by Git (there is a
- Create another
.envfile (same folder).
e.g. .env (in addition to my-app-service-account-af2cb2364.json)
# default is 3030 #SERVER_PORT= FIRESTORE_DATABASE_URL="https://my-project.firebaseio.com" GCLOUD_AUTH_TYPE="service_account" GCLOUD_PROJECT="my-project" #GCLOUD_AUTH_TYPE=oauth2 # override the default redirect url (default is the first one) #OAUTH2_REDIRECT_URL=- Install dependencies
npm install - Run the app by
npm start - Open browser on
http://localhost:3030
- Go to Firebase console
- Open your project's settings.
- At the "Service accounts" tab, click the "Generate new private key" (Node.js chosen)
| Value format | Argument | Translates to | Description | Example |
|---|---|---|---|---|
"$id" | None | path.split('/').pop() | Gets the current document id (last part of the path) | "key": "$id" |
"$path" | None | path | Gets the current document path | "current_path": "$path" |
"$path<n>" | None | path.split('/')[n] | Gets the Nth part of current document path | "root_collection": "$path0" |
"$ref:/..." | Path to a document (can contain $path<n>? placeholders) | firestore.doc("/...") | DocumentReference type value | "related_doc": $ref:/$path0/$path1/sibling-coll/doc-1" |
"$time:<millis/ISO>" | millis = Milliseconds since UNIX epoch OR ISO = ISO-8601 format. | Timestamp.fromDate(new Date(...)) | Timestamp type value | "action_time": $time:1609459200000" / $time:2021-01-01T00:00" |
"$serverTime()" | None | FieldValue.serverTimestamp() | Timestamp of write time on server | "created_at": "$serverTime()" |
["$geo", <la>, <lo>] | Latitude and Longitude (float) | new GeoPoint(<la>,<lo>) | GeoPoint type value | "ip_location": ["$geo", 34, 40] |
"$inc:<by>" | Number (float or int) | FieldValue.increment(<by>) | Increments (or decrements for negative values) the existing value (or adding to 0) | "count": "$inc:1" |
["$union", ...] | any[] | FieldValue.arrayUnion(...) | Add the following items to the existing array (create one if not an array) | "likes_by": ["$union", "$ref:/..."] |
["$remove", ...] | any[] | FieldValue.arrayRemove(...) | Remove the following items from the existing array | "flags": ["$remove", 2] |
"$delete" | None | FieldValue.delete() | Mark this field for deletion (on update only) | "to_be_deleted": "$delete" |

