firebase-functions-manager
v1.0.0
Published
Visual management tool for Firebase Functions deployment
Maintainers
Readme
Firebase Functions Manager 🔥
A visual management tool for Firebase Functions deployment. Deploy and manage your Firebase Functions through a beautiful web interface with real-time deployment logs.
Features
- ✅ Auto-detects functions from
functions/index.js - ✅ Shows deployment status via Google Cloud Functions API
- ✅ Displays last invocation time for each function (optional - requires Monitoring Viewer role)
- ✅ One-click deployment with real-time logs
- ✅ Zero pollution to your codebase
- ✅ Works with any Firebase project
Installation
Using npx (recommended)
No installation needed! Just run from your Firebase project root:
npx firebase-functions-managerGlobal Installation
npm install -g firebase-functions-managerThen run from any Firebase project:
ffmProject Installation
npm install --save-dev firebase-functions-managerUsage
- Navigate to your Firebase project root directory
- Ensure you have
functions/index.jsandfunctions/serviceAccount.json - Run the command:
npx firebase-functions-manager
# or
ffm- Your browser will automatically open to
http://localhost:3001 - Manage your functions through the visual dashboard!
Prerequisites
- Node.js >= 16.0.0
- A Firebase project with Cloud Functions
- Firebase Admin SDK credentials (
serviceAccount.json) - Firebase CLI installed globally (
npm install -g firebase-tools)
Getting Service Account Credentials
- Go to Firebase Console
- Select your project
- Go to Project Settings → Service Accounts
- Click Generate New Private Key
- Save the downloaded JSON file as
functions/serviceAccount.json
Optional: Enable "Last Invoked" Feature
To see when each function was last called, add the Monitoring Viewer role to your service account:
- Go to Google Cloud Console IAM
- Find your service account (email from
serviceAccount.json) - Click Edit → Add Another Role
- Add: Monitoring Viewer
- Click Save
See MONITORING_SETUP.md for detailed instructions.
Note: Without this role, the tool works perfectly - you just won't see last invocation times.
Project Structure
Your Firebase project should have this structure:
your-firebase-project/
├── functions/
│ ├── index.js # Your functions
│ ├── serviceAccount.json # Firebase Admin credentials
│ └── package.json
├── firebase.json
└── .firebasercHow It Works
- Detection: Scans
functions/index.jsfor exported functions - Status Check: Queries Google Cloud Functions API for deployment status
- Comparison: Shows which functions are deployed, not deployed, or orphaned
- Deployment: Triggers Firebase CLI deployment and streams logs in real-time
Features in Detail
Function Status
- Deployed: Function exists locally and is deployed to Firebase
- Not Deployed: Function exists locally but not deployed yet
- Orphaned: Function is deployed but no longer in local code
Real-time Deployment
Click the "🚀 Deploy" button on any function to:
- Start deployment using Firebase CLI
- See live deployment logs
- Get notified when deployment completes
- Automatically refresh status
Dashboard
- View all functions at a glance
- See deployment timestamps
- Check runtime versions
- View function descriptions (from JSDoc comments)
- Filter by status
Development
Setup
git clone https://github.com/yourusername/firebase-functions-manager.git
cd firebase-functions-manager
npm install
cd client
npm install
cd ..Build
npm run buildTest Locally
npm link
cd /path/to/your/firebase/project
npx ffmConfiguration
The tool runs on port 3001 by default. To change this, modify:
bin/ffm.js(line 31)server/index.js(function parameter)
Troubleshooting
"No functions/index.js found"
Make sure you're running the command from your Firebase project root directory.
"No functions/serviceAccount.json found"
Download your Firebase Admin SDK credentials and save them as functions/serviceAccount.json.
"Port 3001 already in use"
Another process is using port 3001. Either stop that process or modify the port in the configuration.
WebSocket connection fails
Check your firewall settings and ensure the server is running properly.
Security Notes
- Never commit
serviceAccount.jsonto version control - The tool only reads your local files; it doesn't modify them
- All deployment actions use your existing Firebase CLI authentication
- Credentials are used only for API calls to check deployment status
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
If you encounter any issues or have questions, please open an issue.
Author
Your Name
Acknowledgments
Built with:
