Default bucket and billing requirements for Cloud Storage for Firebase after September 2024Stay organized with collectionsSave and categorize content based on your preferences.
InSeptember 2024, we announced infrastructure
updates to better align withGoogle Cloud Storagequota and billing and to
prevent abuse on our platform.
Here are two key points to know:
Cloud Storage for Firebase(even default buckets) now requires projects to be
on thepay-as-you-go Blaze pricing plan.No-cost usage is still available even on
the Blaze pricing plan.
All defaultCloud Storage for Firebasebuckets createdafterSeptember 2024have the name format ofPROJECT_ID.firebasestorage.app.
Review the following FAQs for details about the changes:
To useCloud Storage for Firebase, your Firebase project must be on thepay-as-you-go Blaze pricing plan. No-cost usage is still available even on the
Blaze pricing plan.
If your Firebase project is on the Spark pricing plan, you won't have
access to anyCloud Storagebuckets (including default buckets), and your API
calls to buckets will return 402 or 403 errors.
How to regain access
To regain access and quality of service forCloud Storageresources and
data, upgrade to thepay-as-you-go Blaze pricing plan. No-cost usage is still available
even on the Blaze pricing plan, including for your legacy*.appspot.comdefault bucket.
No access in console
If your project is on the Spark pricing plan, you'll no longer have
access to your bucket in theFirebaseconsole and theGoogle Cloudconsole.
Instead, you'll be redirected to theCloud Storagelanding page where you can
upgrade to the Blaze pricing plan.
402 and 403 errors
If your project is on the Spark pricing plan, your calls toCloud StorageAPIs (like from your app) will fail and return 402 or 403 errors.
Follow the guidance inHow to regain accessabove or check out
moretroubleshooting optionsbelow.
402 errors
"error": {
"code": 402,
"message": "Cloud Storage for Firebase no longer supports Firebase projects that are on the no-cost Spark pricing plan. Please upgrade to the pay-as-you-go Blaze pricing plan to maintain access to your default bucket and all other Cloud Storage resources. For details, see our FAQ: https://firebase.google.com/docs/storage/faqs-storage-changes-announced-sept-2024"
}
OR
storage/quota-exceeded: Firebase Storage: Quota for bucket '{project-id}.appspot.com' exceeded, please view quota on https://firebase.google.com/pricing/. (storage/quota-exceeded)
403 errors
<Error>
<Code>UserProjectAccountProblem</Code>
<Message>The project to be billed is associated with an absent billing account.</Message>
<Details>The billing account for the owning project is disabled in state absent</Details>
</Error>
OR
storage/unauthorized: User does not have permission to access {path}
Troubleshooting
If you're experiencing any issues, check out these troubleshooting resources. If
none of the following help with your issue, thenreach out to Firebase Support.
ForCloud Storage for Firebaseto function properly, a service account in your
Firebase project needs certain IAM permissions.
If you get errors in theFirebaseconsole about permissions for this
service account, it's often because the service account has been deleted from
your Firebase project. To resolve this issue, follow the steps described inthis FAQ.
Pricing plan FAQs
To useCloud Storage for Firebase, your Firebase project must be on thepay-as-you-go Blaze pricing plan.No-cost usage is still available even on the
Blaze pricing plan.
We understand that these changes will require your time to evaluate and make
changes to your Firebase project and workflows. If you have any questions,
please reach out toFirebase Support.
What are the pricing plan requirements forCloud Storage for Firebase?
The following billing requirements apply to all projects usingCloud Storage for Firebase:
To provision a new default bucketusing theFirebaseconsole or REST
API, your project must be on thepay-as-you-go Blaze pricing plan.
All default buckets provisionedafterSeptember 2024have these characteristics:
The buckets have a name format ofPROJECT_ID.firebasestorage.app(instead of the formerPROJECT_ID.appspot.com).
To maintain access to your default bucket and all otherCloud Storageresources, your project must be on thepay-as-you-go Blaze pricing plan. Any*.appspot.comdefault bucket maintains its current
no-cost level of usage even on the Blaze pricing plan.
Why is Firebase making these pricing plan changes?
Firebase strives to keep our products and our ecosystem safe and secure. As part
of that, we're making some changes toCloud Storage for Firebaseand taking
proactive steps to prevent abuse on our platform. This includes updating our
infrastructure to better align withGoogle Cloud Storagequota and billing.
Can I keep no-cost usage if I upgrade to the Blaze pricing plan?
Yes. If you have aPROJECT_ID.appspot.comdefault bucket and you
upgrade to thepay-as-you-go Blaze pricing plan, you maintain your default
bucket's current no-cost level of usage, as described below. Any usage over this
no-cost usage is charged according toGoogleApp Enginepricing.
5 GB stored
1 GB downloaded / day
20,000 uploads / day
50,000 downloads / day
StartingSeptember 2024, all new default buckets
have the name format ofPROJECT_ID.firebasestorage.appand they followGoogle Cloud Storagepricing and usage,
which provides an"Always Free" tierfor buckets inUS-CENTRAL1,US-EAST1, andUS-WEST1.
When do I need to upgrade to the Blaze pricing plan?
To useCloud Storage for Firebaseor to maintain access to yourPROJECT_ID.appspot.comdefault bucket, you must upgrade to the
pay-as-you-go Blaze pricing plan plan. This requirement went into effect startingFebruary 03, 2026.
What if I don't upgrade my project to the Blaze pricing plan?
If you haven't yet provisioned a defaultCloud Storagebucket in your project,
then you won't be able to provision it unless your project is on the
Blaze pricing plan.
If you have existing buckets and your project isn't on the
Blaze pricing plan, the following happens:
You lose read/write access to all yourCloud Storageresources, including your
default bucket.
You won't be able to view buckets or access their data in theFirebaseconsole or theGoogle Cloudconsole.
Any data will remain in your buckets, but it will be inaccessible until you
upgrade to the Blaze pricing plan.
What happens if my*.appspot.comdefault bucket's usage is over the no-cost usage level ?
If you have aPROJECT_ID.appspot.comdefault bucket, and you upgrade to
the Blaze pricing plan with a usage that's over the no-cost usage
levels described below, then you will be charged for the overage according toGoogleApp Enginepricingon your next billing cycle.
If you created your default bucket recently(afterSeptember 2024), then your default bucket has a
name format ofPROJECT_ID.firebasestorage.app.
What happens if I delete my*.appspot.comdefault bucket?
A deleted bucket is restorable using the Cloud StorageBuckets: restoreAPI until its hard delete time has elapsed.
If you delete yourPROJECT_ID.appspot.comdefault bucket, you won't be
able to provision a bucket with that same name format.
Instead, you can create a new defaultCloud Storagebucket (if your project is on
the Blaze pricing plan) that has a name format ofPROJECT_ID.firebasestorage.app. It followsGoogle Cloud Storagepricing and usage,
which provides an"Always Free" tierfor buckets inUS-CENTRAL1,US-EAST1, andUS-WEST1.
Do I need to update my app's codebase?
No. You donotneed to update your app's codebase.
All existingPROJECT_ID.appspot.comdefault buckets maintain their
name format.
As long as your project is on thepay-as-you-go Blaze pricing plan, your codebase will
continue to interact with thePROJECT_ID.appspot.comdefault bucket as
it always has.
Do I need to move my data out of my*.appspot.comdefault bucket?
No. You donotneed to move your data out of yourPROJECT_ID.appspot.comdefault bucket.
As long as you upgrade your project to thepay-as-you-go Blaze pricing plan, you'll
maintain access to your bucket and see no service interruptions.
Changes for programmatic interactions (like REST APIs and Terraform)
If you provision or work with defaultCloud Storage for Firebasebuckets
programmatically (for example, using REST APIs or Terraform), review the
following changes to see if you need to change anything in your workflows or
apps.
Review the following FAQs for more details about these requirements. If you
have any questions, please reach out toFirebase Support.
What are the changes for using REST APIs?
The following changes apply to REST APIs that involveCloud Storage for Firebase:
The following changes apply to using Terraform withCloud Storage for Firebase:
You can no longer provision the defaultCloud Storage for Firebasebucket using
Terraform. This is because you can no longer provision this bucket viaGoogleApp Engine. Instead, you can do one of the following:
Provision the bucket through theFirebaseconsole. To get started, go toDatabases & Storage>Storagein theFirebaseconsole.
Additionally, note the following about*.firebasestorage.appdefault buckets (provisionedafterSeptember 2024):
Your project must be on the pay-as-you-go Blaze pricing plan to provision a
defaultCloud Storagebucket.
You no longer need to provision your defaultCloud Firestoreinstance before
your defaultCloud Storagebucket.
The location you select for your defaultCloud Firestoreinstance is not
applicable to your defaultCloud Storagebucket (this means that your defaultCloud Firestoreinstance and your defaultCloud Storagebucket can be in different
locations).
The name format of the defaultCloud Storagebucket isPROJECT_ID.firebasestorage.app(instead of the formerPROJECT_ID.appspot.com).
defaultCloud Storage for Firebasebucket (specifically those with the name
format ofPROJECT_ID.appspot.com)
GoogleCloud Scheduler(specifically for 1st gen scheduled
functions)
When you set up any one of these resources in your project, you're transitively
setting the location of theGoogleApp Engineapp in your project.
This, in turn, sets the location for all the resources associated withGoogleApp Engine.
Note the following:
Any defaultCloud Storagebucket provisionedbeforeSeptember 2024(with a name format ofPROJECT_ID.appspot.com) is
associated withGoogleApp Engine.
This means the following:
The bucket's location sets the location of resources associated withGoogleApp Engine(like the location of the defaultCloud Firestoreinstance).
Any defaultCloud Storagebucket provisionedafterSeptember 2024(with the name format ofPROJECT_ID.firebasestorage.app) isnotassociated withGoogleApp Engine.
This means the following:
Provisioning your defaultCloud Storagebucket does not set the location of
resources associated withGoogleApp Engine(like the location of
the defaultCloud Firestoreinstance).
Provisioning your defaultCloud Firestoreinstance does not set the location
of your project's defaultCloud Storagebucket.
defaultCloud Storage for Firebasebucket (specifically those with the name
format ofPROJECT_ID.appspot.com)
GoogleCloud Scheduler(specifically for 1st gen scheduled
functions)
The concept of "defaultGoogle Cloudresources" doesn't apply to
defaultCloud Storagebuckets with the name format ofPROJECT_ID.firebasestorage.app, and these buckets arenotassociated withGoogleApp Engine. To learn more, review the FAQ:What happened to the "location for defaultGoogle Cloudresources"?
If you want to set or get the location for any resource in a project, then you
should interact directly with the resource instead.
DefaultCloud Storage for Firebasebucket
In theFirebaseconsole:
Set and find the location of a defaultCloud Storagebucket in theStoragesectionof theFirebaseconsole.
Note that calling this endpoint requires thepay-as-you-go Blaze pricing plan. So
before attempting to create a default bucket, make sure that the project
is linked to aCloud Billingaccount (for example, usingprojects.updateBillingInfo).
Note that if you have a legacy*.appspot.comdefault
bucket (provisionedbeforeSeptember 2024), then
the location of the project's defaultCloud Firestoreinstance has already been
set (due to associations withGoogleApp Engine).
In theFirebaseconsole:
Set and find the location of a defaultCloud Firestoreinstance in theFirestoresectionof theFirebaseconsole.
Using REST APIs:
Set the location of a defaultCloud Firestoreinstance during its provisioning
when callingprojects.databases.create.
Note that if you have a legacy*.appspot.comdefault
bucket (provisionedbeforeSeptember 2024), then
the project's scheduled functions (1st gen) has already been set (due to
associations withGoogleApp Engine).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-04-23 UTC."],[],[]]