← Back to notes
Flutter & Cross-Platform 2026-06-08 20:19 4 min read Local copy

Firebase & FlutterFire Recommended Multi-Account Setup

Firebase & FlutterFire Recommended Multi-Account Setup
Madhan Gannarapu
Madhan Gannarapu

Posted on Jun 8

Firebase & FlutterFire Recommended Multi-Account Setup
#cli #flutter #productivity #tooling

Overview

This guide describes the recommended setup for developers working with:

  • Personal Firebase Projects (personal@gmail.com)
  • Company Firebase Projects (employee@company.com)

The goal is to:

  • Avoid frequent login/logout cycles
  • Switch accounts quickly
  • Manage multiple Firebase environments
  • Keep FlutterFire configuration simple
  • Use an officially supported Firebase workflow

Architecture
Google Accounts
├── personal@gmail.com
└── employee@company.com

Firebase CLI
├── login:add
├── login:list
└── login:use

Firebase Projects
├── personal-app
├── company-dev
├── company-qa
└── company-prod

Project Aliases
├── dev
├── qa
└── prod

Shell Aliases
├── firebase-personal
└── firebase-company

Step 1: Install Firebase CLI

Install:

npm install -g firebase-tools

Verify:

firebase --version

Step 2: Install FlutterFire CLI

Install:

dart pub global activate flutterfire_cli

Verify:

flutterfire --version

Step 3: Add Multiple Firebase Accounts

Add Personal Account

firebase login:add

Select:

personal@gmail.com

Add Company Account

firebase login:add

Select:

employee@company.com

Verify Accounts

firebase login:list

Example:

✔ personal@gmail.com
✔ employee@company.com

Step 4: Create Shell Aliases

Instead of typing long email addresses repeatedly, create aliases.

Open:

nano ~/.zshrc

Add:

alias firebase-personal="firebase login:use personal@gmail.com"
alias firebase-company="firebase login:use employee@company.com"

Reload:

source ~/.zshrc

Step 5: Test Account Switching

Switch to personal account:

firebase-personal

Verify:

firebase projects:list

Switch to company account:

firebase-company

Verify:

firebase projects:list

Step 6: Configure Firebase Project Aliases

Navigate to your Flutter project:

cd my-project

Add development project:

firebase use --add

Example:

Project:
company-dev

Alias:
dev

Add QA project:

firebase use --add

Example:

Project:
company-qa

Alias:
qa

Add Production project:

firebase use --add

Example:

Project:
company-prod

Alias:
prod

Generated file:

.firebaserc

Example:

{
  "projects": {
    "dev": "company-dev",
    "qa": "company-qa",
    "prod": "company-prod"
  }
}

Step 7: Verify Project Aliases

Switch environment:

firebase use dev

or

firebase use qa

or

firebase use prod

Check active project:

firebase use

Step 8: Generate FlutterFire Configurations

Development:

flutterfire configure \
  --project=company-dev \
  --out=lib/firebase_options_dev.dart

QA:

flutterfire configure \
  --project=company-qa \
  --out=lib/firebase_options_qa.dart

Production:

flutterfire configure \
  --project=company-prod \
  --out=lib/firebase_options_prod.dart

Result:

lib/
├── firebase_options_dev.dart
├── firebase_options_qa.dart
└── firebase_options_prod.dart

Step 9: Configure Firebase Initialization

Example:

import 'firebase_options_dev.dart' as dev;
import 'firebase_options_prod.dart' as prod;

const isProd = bool.fromEnvironment('PROD');

await Firebase.initializeApp(
  options: isProd
      ? prod.DefaultFirebaseOptions.currentPlatform
      : dev.DefaultFirebaseOptions.currentPlatform,
);

Daily Workflow

Working on Personal Project

Switch account:

firebase-personal

Verify projects:

firebase projects:list

Configure FlutterFire if required:

flutterfire configure

Working on Company Development Environment

Switch account:

firebase-company

Switch environment:

firebase use dev

Verify:

firebase use

Run:

flutterfire configure

Working on Company QA Environment

firebase-company
firebase use qa

Working on Company Production Environment

firebase-company
firebase use prod

Troubleshooting

Show Logged-In Accounts

firebase login:list

Show Available Projects

firebase projects:list

Show Current Active Project

firebase use

Remove an Account

firebase logout employee@company.com

Why This Setup Is Recommended

Firebase Multi-Account Support

Uses Firebase's officially supported mechanism:

firebase login:add

Benefits:

  • Multiple Google accounts supported
  • No repeated browser authentication
  • Secure credential management
  • Works across all Firebase CLI commands

Shell Aliases

Provides faster switching:

firebase-personal
firebase-company

instead of:

firebase login:use personal@gmail.com
firebase login:use employee@company.com

Benefits:

  • Faster workflow
  • Less typing
  • Fewer mistakes

Final Recommendation

Use:

  1. Firebase Multi-Account Support
firebase login:add
  1. Firebase Project Aliases
firebase use --add
  1. Shell Aliases
alias firebase-personal="firebase login:use personal@gmail.com"
alias firebase-company="firebase login:use employee@company.com"

This combination provides:

  • Official Firebase account management
  • Fast account switching
  • Environment management (Dev / QA / Prod)
  • FlutterFire compatibility
  • Minimal maintenance

Interactive shell scripts are optional and are only worth adding if you switch accounts and environments many times throughout the day.

Top comments (0)

Subscribe

For further actions, you may consider blocking this person and/or reporting abuse