Firebase Setup & Prerequisites
Connect Stackpane to your Firebase project with Google Sign-In, service accounts, or the local emulator.
Overview
Stackpane connects to Firebase projects using Google OAuth or a service account key. For local development, the Firebase Emulator Suite requires no authentication at all. Once connected, you can browse Firestore collections, manage Auth users, work with Cloud Storage, configure security rules, and more — all from a native macOS interface.
Authentication Methods
Firebase connections support three authentication methods depending on your environment.
Google Sign-In (Recommended)
The easiest way to connect to a production Firebase project:
- Click the + button in the sidebar or choose New Connection.
- Select Firebase as the provider.
- Enter your Firebase Project ID (found in your Firebase Console under Project Settings > General).
- Select Production as the environment and Google Sign-In as the authentication method.
- Click Sign in with Google to open the OAuth flow in your browser.
- Authorize Stackpane to access your Firebase project.
Your credentials are stored securely in the macOS Keychain and automatically refresh.
Required Permissions
Your Google account must have IAM permissions on the Firebase project. Common roles that work:
| Role | Access Level |
|---|---|
| Owner or Editor | Full read/write access to all services |
| Viewer | Read-only access to all services |
| Cloud Datastore User | Read/write access to Firestore only |
Custom roles work as long as they include the necessary permissions for the services you want to use.
Service Account
For automated workflows, CI/CD-adjacent usage, or when Google Sign-In is not suitable:
- Open the Firebase Console and select your project.
- Navigate to Project Settings > Service accounts.
- Click Generate new private key to download a JSON key file.
- In Stackpane, select Service Account as the authentication method.
- Click Choose File and select the downloaded JSON key file.
Stackpane reads the credentials and stores them securely in the Keychain. The original file can be deleted after import.
Recommended Roles
The service account must have roles for the Firebase services you want to access:
| Service | Minimum Role |
|---|---|
| Firestore | Cloud Datastore User |
| Auth | Firebase Authentication Admin |
| Storage | Storage Admin |
| Security Rules | Firebase Rules Admin |
| Cloud Functions | Cloud Functions Viewer |
| Remote Config | Firebase Remote Config Admin |
For full access to all services, assign the Editor role to the service account.
Emulator (No Auth Required)
When connecting to the Firebase Emulator Suite, no authentication is needed:
- Select Emulator as the environment type.
- Configure the emulator host (default:
localhost) and ports for each service. - Optionally select Manage Project to have Stackpane start and stop the emulator for you.
See the Emulator Suite guide for detailed configuration options including managed mode, snapshot management, and port customization.
Finding Your Project ID
Your Firebase Project ID is a unique identifier like my-app-12345. To find it:
- Open the Firebase Console.
- Click the gear icon next to Project Overview.
- Select Project settings.
- The Project ID is displayed under the General tab.
The Project ID is lowercase letters, numbers, and hyphens. It is not the same as the project name or project number.
Multiple Connections
You can create separate connections for different environments or auth configurations:
- Production (Google Sign-In) — for interactive development with your Google account
- Production (Service Account) — for consistent, user-independent access
- Emulator — for local development and testing without touching production data
Each connection maintains its own bookmarks, tabs, and settings.
Firebase Plan Requirements
Stackpane uses the standard Firebase REST APIs. All features work with the Spark (free) plan with the following exceptions:
- Cloud Functions — requires the Blaze (pay-as-you-go) plan to deploy functions
- Cloud Logging — log access requires the Blaze plan
- Analytics — GA4 data export requires linking a Google Analytics property
Firestore, Auth, Storage, Security Rules, Remote Config, and Firestore Indexes all work on the free plan.
Troubleshooting
”Permission denied” on Firestore or Storage
Your Google account or service account lacks the required IAM roles. Check the role tables above and verify permissions in the Firebase Console under Project Settings > Users and permissions.
”Project not found”
Verify the Project ID is correct — it must match exactly as shown in the Firebase Console. The Project ID is case-sensitive and uses hyphens, not underscores.
Google Sign-In fails or token expires
Stackpane automatically refreshes OAuth tokens. If sign-in fails, try signing out and back in from the connection settings. Ensure your browser is not blocking the OAuth popup.
Service account errors
- Verify the JSON key file was generated for the correct project
- Check that the service account has not been deleted or disabled in the IAM Console
- Ensure the key file is valid JSON and was not truncated during download
Emulator connection refused
Make sure the Firebase Emulator Suite is running before connecting. The default ports are:
| Service | Default Port |
|---|---|
| Firestore | 8080 |
| Auth | 9099 |
| Storage | 9199 |
| Functions | 5001 |
| Emulator UI | 4000 |
If you changed ports in firebase.json, update the connection settings to match.
Tips
- Google Sign-In is the fastest way to get started — no key files to manage
- Service accounts are better for shared team setups where you don’t want access tied to a personal Google account
- Credentials are stored in the macOS Keychain and never written to disk
- Create separate emulator and production connections to avoid accidental data changes