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:
- Firebase Multi-Account Support
firebase login:add
- Firebase Project Aliases
firebase use --add
- 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)