1.2.10 • Published 4 months ago

firebase-admin-cli v1.2.10

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
4 months ago

firebase-admin-cli

Empower Your Firebase Project with Ultimate Control: Unleash the Full Potential of Firebase's Auth, Realtime Database, Firestore, Storage, and More, All Through a Powerful Command Line Interface with Admin Privileges!

npm npm NpmLicense GitHub last commit GitHub release

Install

npm i firebase-admin-cli -g

Run

> export GOOGLE_APPLICATION_CREDENTIALS=/FULL_PATH_TO_YOUR_SERVICE_ACCOUNT.json
> firebase-cli

How to use

Just use JavaScript to manage the database.

  • You can use one-line commands
console.log(
  await db
    .collection("users")
    .get()
    .then(({ docs }) => docs.map((e) => e.data()))
);
const users = await db.collection("users").get();
console.log(users.docs.map((e) => e.data()));
  • You can insert multi-line scripts
// command 1 (use Ctrl + V to input multiline code)
const users = await db.collection("users").get();
const arr = users.docs.map((e) => e.data());
console.log(arr);
  • You can assign the result of a command to variables and use them in another command
// command 1
const users = await db.collection("users").get();
// command 2
const arr = users.docs.map((e) => e.data());
// command 3
console.log(arr);
  • You can output the result of the command to the console (you can study the structures and utility properties and methods of objects)
console.log(await db.collection("users").get());
  • You can even execute your script from a file using require();
require("../examples/my_migration_script_test.js").run();

my_migration_script_test.js

const admin = require("firebase-admin");

module.exports.run = async () => {
  const users = await admin.firestore().collection("users").get();
  const arr = users.docs.map((e) => e.data());
  console.log(arr);
};

Example

siarhei@MacBook-Pro firebase-admin-cli % export GOOGLE_APPLICATION_CREDENTIALS=/Users/siarhei/Projects/firebase-admin-cli/serviceAccount.json
siarhei@MacBook-Pro firebase-admin-cli % firebase cli --with=../examples/my_extension.js

> firebase-admin-cli@1.0.0 start
> node ./bin/firebase-cli.js

The following settings are loaded:
Service Account from file: /Users/siarhei/Projects/ireceipt-pro/firebase/functions/accounts/production.json
Project id: ireceipt-pro
Extension is loaded: ../examples/my_extension.js
The following methods are now available to you: ext.printFile
┌─────────┬───────────┬───────────────────────────────────────────┬─────────────────────────────┐
│ (index) │ command   │ title                                     │ alias                       │
├─────────┼───────────┼───────────────────────────────────────────┼─────────────────────────────┤
│ 0       │ 'help()'  │ 'Сall current help'                       │ 'help()'                    │
│ 1       │ 'auth'    │ 'Сall firebase authorization interface'   │ 'admin.auth()'              │
│ 2       │ 'rtdb'    │ 'Сall firebase database interface'        │ 'admin.database()'          │
│ 3       │ 'db'      │ 'Сall firebase firestore interface'       │ 'admin.firestore()'         │
│ 4       │ 'storage' │ 'Сall firebase storage interface'         │ 'admin.storage()'           │
│ 5       │ 'bucket'  │ 'Сall firebase storage/bucket interface'  │ 'admin.storage().bucket()'  │
│ 6       │ 'types'   │ 'Сall firebase firestore types interface' │ 'admin.firestore'           │
│ 7       │ 'exit()'  │ 'Exit console'                            │ 'terminalInterface.close()' │
└─────────┴───────────┴───────────────────────────────────────────┴─────────────────────────────┘
Firebase Admin CLI (ireceipt-pro)>

Extensions

You can create your own extensions for the application and run them inside the console.

If you want to use extensions, just list them using the prefix --with=, for example:

siarhei@MacBook-Pro firebase-admin-cli % firebase cli --with=../examples/my_extension.js --with=../examples/my_extension_2.js --with=../examples/my_extension_3.js

After that, you can use the extension commands. For example:

ext.printFile("users/test_file.json")

Here is example of the JavaScript extension (also you can use TypeScript):

const { tools } = require("firebase-admin-cli");

/**
 * Print a GCS file data
 *
 * Example `ext.printFile("users/test_file.json");`
 * @param {String} path - file path
 */
const printFile = async (path) => {
  console.log(
    await tools.bucket
      .file(path)
      .download()
      .then(([buf]) => buf.toString())
  );
};

module.exports = { printFile };
1.2.10

4 months ago

1.2.9

5 months ago

1.2.8

5 months ago

1.2.7

6 months ago

1.2.6

7 months ago

1.2.5

8 months ago

1.2.4

8 months ago

1.2.3

8 months ago

1.2.2

9 months ago

1.2.0

9 months ago

1.2.1

9 months ago

1.1.23

10 months ago

1.1.24

10 months ago

1.1.22

11 months ago

1.1.21

11 months ago

1.1.20

12 months ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

2 years ago

1.1.15

2 years ago

1.1.14

2 years ago

1.1.12

2 years ago

1.1.13

2 years ago

1.1.11

2 years ago

1.1.9

2 years ago

1.1.10

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

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.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago