Posted on Jun 8
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)
For further actions, you may consider blocking this person and/or reporting abuse
