
Handles the foundational Firebase CLI workflows that every project needs but are easy to mess up. It forces you to use the latest Firebase tools via npx instead of relying on whatever version you have installed locally, walks through proper authentication flows including the no-localhost option for remote environments, and manages project context switching. The skill also enforces using the Firebase MCP server for API calls rather than manual requests. Most helpful when you're setting up a new Firebase project or debugging why your CLI commands are failing due to auth or project configuration issues.
$ npx -y skills add firebase/agent-skills --skill firebase-basics --agent claude-codeInstalls into .claude/skills of the current project.
Complete these setup steps before proceeding:
Local Environment Setup: Verify the environment is properly set up so we can use Firebase tools:
npx -y firebase-tools@latest --version to check if the Firebase CLI
is installed.Authentication: Ensure you are logged in to Firebase so that commands
have the correct permissions. Run npx -y firebase-tools@latest login:list
first; if not logged in, run npx -y firebase-tools@latest login. For
environments without a browser (e.g., remote shells), use
npx -y firebase-tools@latest login --no-localhost.
Active Project: Most Firebase tasks require an active project context.
[!IMPORTANT] For Agents: If no Project ID was provided, you MUST pause and ask the developer if they prefer to:
- Provide an existing Firebase Project ID, or
- Create a new Firebase project.
If using an existing Project ID:
Check the current project with npx -y firebase-tools@latest use (if
firebase.json is missing at the project root, create {} first).
If the command outputs Active Project: <project-id>, confirm with the
user if this is the intended project.
If not, or if no project is active, set the project provided by the user:
npx -y firebase-tools@latest use <PROJECT_ID>
If creating a new project: Run the following command to create it:
npx -y firebase-tools@latest projects:create <project-id> --display-name "<display-name>"
Note: The <project-id> must be 6-30 characters, lowercase, and can
contain digits and hyphens. It must be globally unique.
Adhere to these principles:
npx -y firebase-tools@latest
instead of just firebase. For example, use
npx -y firebase-tools@latest --version. NEVER suggest the naked firebase
command as an alternative.developerknowledge_search_documents MCP tool before falling
back to Google Search or your internal knowledge base. Including "Firebase"
in your search query significantly improves relevance.google-services.json
or GoogleService-Info.plist. Instead, use the Firebase CLI to fetch the
config programmatically:
npx -y firebase-tools@latest apps:sdkconfig ANDROID <APP_ID> --project <PROJECT_ID>npx -y firebase-tools@latest apps:sdkconfig IOS <APP_ID> --project <PROJECT_ID>
Save the output to the appropriate location (e.g.,
app/google-services.json for Android, or a path to be linked by
xcode-project-setup for iOS).Login Issues: If the browser fails to open during the login step, use
npx -y firebase-tools@latest login --no-localhost instead.
Genkit: If using Genkit, install the skills:
npx skills add genkit-ai/skills
Sponsors