To downgrade from the Firebase Blaze plan to the free Spark plan, open the Firebase Console, go to your project settings, click the billing or plan section, and select the Spark plan. Before downgrading, check which services require Blaze — Cloud Functions, phone authentication, and multiple Realtime Database instances will stop working immediately. Export or back up any data you need, disable active Cloud Functions, and review your current month's usage to understand final charges.
Downgrading from Firebase Blaze to Spark Plan
The Blaze plan is Firebase's pay-as-you-go tier that unlocks Cloud Functions, phone auth, and higher usage limits. If your project no longer needs these features, you can switch back to the free Spark plan. This tutorial walks through the pre-downgrade checklist, the actual steps in the Firebase Console, and what to expect after the switch.
Prerequisites
- Owner or Billing Admin role on the Firebase project
- Access to the Firebase Console (console.firebase.google.com)
- Knowledge of which services your project currently uses
Step-by-step guide
Review which services require the Blaze plan
Review which services require the Blaze plan
Before downgrading, understand what you will lose. Cloud Functions stop executing entirely — all deployed functions become inactive. Phone authentication (SMS-based sign-in) stops working. You are limited to a single Realtime Database instance. Firebase Extensions stop running. Cloud Storage blocks executable file uploads. Hosting bandwidth drops to 360 MB/day and storage to 10 GB. If your app depends on any of these, downgrading will break functionality.
Expected result: You have a clear list of Blaze-only features your project uses and understand which will stop working.
Check current usage and billing
Check current usage and billing
In the Firebase Console, go to Usage and billing in the left sidebar (or Project Settings > Usage and billing). Review your current billing period usage for Firestore reads/writes, Cloud Functions invocations, Storage bandwidth, and Auth operations. Note that you will still be charged for any usage during the current billing period up to the downgrade date. The Blaze plan includes the same free-tier quotas as Spark, so you only pay for usage above those limits.
Expected result: You understand your current charges and know there are no surprise costs pending before the downgrade.
Back up data and disable Cloud Functions
Back up data and disable Cloud Functions
Export any data that might be affected by the downgrade. For Firestore, use gcloud firestore export or the Firebase Console export. For Realtime Database, download JSON from the Console. If you have Cloud Functions, consider deleting them before downgrading to avoid confusing error states. Go to the Firebase Console > Functions tab and delete functions you no longer need.
1# Export Firestore data before downgrading (requires gcloud CLI)2gcloud firestore export gs://YOUR_BUCKET_NAME/backup-before-downgrade34# Or delete Cloud Functions via Firebase CLI5firebase functions:delete functionName --region us-central1Expected result: Critical data is backed up and Cloud Functions are disabled or deleted.
Downgrade to the Spark plan in the Firebase Console
Downgrade to the Spark plan in the Firebase Console
Open the Firebase Console and select your project. Click on the plan indicator at the bottom of the left sidebar (or go to Project Settings > Usage and billing > Details & settings). You will see your current plan as Blaze. Click Modify plan or Change plan, then select the Spark (free) plan. Confirm the downgrade. The change takes effect immediately — Cloud Functions stop, phone auth disables, and free-tier limits apply.
Expected result: Your project is now on the Spark plan. The Firebase Console shows Spark as the active plan.
Verify your app works within Spark limits
Verify your app works within Spark limits
After downgrading, test your application thoroughly. Check that authentication still works (email/password and social providers are unaffected). Verify Firestore reads and writes succeed within the daily limits. Confirm that any features that relied on Cloud Functions are either removed from the UI or replaced with alternative implementations. Monitor the Firebase Console's usage dashboard for the next few days to ensure you stay within Spark limits.
Expected result: Your app functions correctly with all Spark-compatible features, and you are no longer incurring Blaze plan charges.
Complete working example
1/**2 * Pre-downgrade checklist script3 * Run this to audit your Firebase project before switching to Spark plan4 */56import { initializeApp, cert } from 'firebase-admin/app';7import { getFirestore } from 'firebase-admin/firestore';8import { getAuth } from 'firebase-admin/auth';910const app = initializeApp({11 credential: cert('./service-account.json'),12});1314const db = getFirestore(app);15const auth = getAuth(app);1617async function auditProject() {18 // Check total users19 const userList = await auth.listUsers(1000);20 console.log(`Total auth users: ${userList.users.length}`);2122 // Check for phone auth users (will break on Spark)23 const phoneUsers = userList.users.filter((u) =>24 u.providerData.some((p) => p.providerId === 'phone')25 );26 console.log(`Phone auth users (will lose access): ${phoneUsers.length}`);2728 // Check Firestore collections29 const collections = await db.listCollections();30 console.log('\nFirestore collections:');31 for (const col of collections) {32 const snapshot = await col.count().get();33 console.log(` ${col.id}: ${snapshot.data().count} documents`);34 }3536 // Spark plan limits reminder37 console.log('\n--- Spark Plan Daily Limits ---');38 console.log('Firestore reads: 50,000/day');39 console.log('Firestore writes: 20,000/day');40 console.log('Firestore deletes: 20,000/day');41 console.log('Hosting bandwidth: 360 MB/day');42 console.log('Cloud Functions: NOT AVAILABLE');43 console.log('Phone Auth: NOT AVAILABLE');44}4546auditProject().catch(console.error);Common mistakes when downgrading from Firebase Blaze to Spark Plan
Why it's a problem: Downgrading without realizing Cloud Functions are Blaze-only
How to avoid: Audit your app for any callable functions, Firestore triggers, or scheduled functions before downgrading. Replace them with client-side logic or remove the features from your app.
Why it's a problem: Expecting to keep the same usage levels on the Spark plan
How to avoid: Spark has strict daily limits: 50K Firestore reads, 20K writes, 360 MB hosting bandwidth. If your app exceeds these, requests will fail. Monitor usage in the Console for several days before downgrading.
Why it's a problem: Not backing up data before downgrading
How to avoid: While Firestore data is not deleted on downgrade, you lose access to Cloud Functions that may be critical for data processing. Export data using gcloud firestore export or the Console before switching plans.
Best practices
- Always audit which Blaze-only features your project uses before downgrading
- Back up Firestore and Realtime Database data before making plan changes
- Delete or disable Cloud Functions before downgrading to avoid confusing error states
- Set up Google Cloud budget alerts even on the Spark plan to catch unexpected re-upgrades
- Test your app thoroughly after downgrading to catch any broken features
- Monitor the Firebase Console usage dashboard for the first week after downgrading
- Consider keeping a small Blaze budget instead of downgrading if you rely on Cloud Functions
- Review phone auth users and migrate them to email or social sign-in before downgrading
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
Explain how to downgrade a Firebase project from the Blaze pay-as-you-go plan to the free Spark plan. Include a pre-downgrade checklist of what to back up and which services stop working, the exact steps in the Firebase Console, and how to verify the app still works after the switch.
Write a Firebase Admin SDK script that audits a project before downgrading from Blaze to Spark. Check for phone auth users, count Firestore documents per collection, list deployed Cloud Functions, and output Spark plan limits for comparison.
Frequently asked questions
Will I lose my data when downgrading from Blaze to Spark?
No. Firestore documents, Realtime Database data, Storage files, and Auth users are all preserved. However, Cloud Functions stop executing and phone authentication disables immediately.
Can I upgrade back to Blaze after downgrading?
Yes. You can switch between Spark and Blaze at any time in the Firebase Console. Upgrading to Blaze re-enables Cloud Functions, phone auth, and higher usage limits immediately.
Will I be charged for the rest of the billing period after downgrading?
You are charged for any pay-as-you-go usage incurred before the downgrade date. There is no monthly subscription fee on Blaze — it is purely usage-based. After downgrading, no further charges accrue.
What happens to deployed Cloud Functions when I downgrade?
Cloud Functions stop executing immediately. They are not deleted — if you upgrade back to Blaze, they resume working. However, any triggers or HTTP endpoints will return errors while on the Spark plan.
Is there a hard spending cap on the Blaze plan instead of downgrading?
No. Firebase does not offer a hard spending cap on the Blaze plan. Budget alerts are notification-only and do not stop charges. If you need guaranteed cost control, downgrading to Spark is the only option.
Can RapidDev help optimize my Firebase costs before I decide to downgrade?
Yes, RapidDev can audit your Firebase usage, optimize Firestore queries, reduce Cloud Functions cold starts, and implement cost-saving patterns that may keep your Blaze costs low enough that downgrading is unnecessary.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation