firebase-basics
Prerequisites
Node.js and npm
To use the Firebase CLI, you need Node.js (version 20+ required) and npm (which comes with Node.js).
Recommended: Use a Node Version Manager (nvm) This avoids permission issues when installing global packages.
-
Install nvm:
- Mac/Linux:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash - Windows: Download nvm-windows
- Mac/Linux:
-
Install Node.js:
nvm install 24 nvm use 24
Alternative: Official Installer Download and install the LTS version from nodejs.org.
Verify Installation:
node --version
npm --version
Core Workflow
1. Installation
Install the Firebase CLI globally via npm:
npm install -g firebase-tools
Verify installation:
firebase --version
2. Authentication
Log in to Firebase:
firebase login
- This opens a browser for authentication.
- For environments where localhost is not available (e.g., remote shell), use
firebase login --no-localhost.
3. Creating a Project
To create a new Firebase project from the CLI:
firebase projects:create
You will be prompted to:
- Enter a Project ID (must be unique globally).
- Enter a display name.
4. Initialization
Initialize Firebase services in your project directory:
mkdir my-project
cd my-project
firebase init
The CLI will guide you through:
- Selecting features (Firestore, Functions, Hosting, etc.).
- Associating with an existing project or creating a new one.
- Configuring files (firebase.json, .firebaserc).
Exploring Commands
The Firebase CLI documents itself. Instruct the user to use help commands to discover functionality.
-
Global Help: List all available commands and categories.
firebase --help -
Command Help: Get detailed usage for a specific command.
firebase [command] --help # Example: firebase deploy --help firebase firestore:indexes --help
SDK Setup
Detailed guides for adding Firebase to your app:
- Web: See references/web_setup.md
Common Issues
- Permission Denied (EACCES): If
npm install -gfails, suggest using a node version manager (nvm) orsudo(caution advised). - Login Issues: If the browser doesn't open, try
firebase login --no-localhost.