In
Here are two key points to know:
Cloud Storage for Firebase (even default buckets) now requires projects to be on the pay-as-you-go Blaze pricing plan. No-cost usage is still available even on the Blaze pricing plan.
All default Cloud Storage for Firebase buckets created after
September 2024 have the name format of .PROJECT_ID.firebasestorage.app
Review the following FAQs for details about the changes:
- Billing requirements and expected experience
- Changes for the default Cloud Storage for Firebase bucket
- Changes for programmatic interactions (like REST APIs and Terraform)
- Changes for "default Google Cloud resources"
Billing requirements and troubleshooting
To use Cloud Storage for Firebase, your Firebase project must be on the pay-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 any Cloud Storage buckets (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 for Cloud Storage resources and
data, upgrade to the pay-as-you-go Blaze pricing plan. No-cost usage is still available
even on the Blaze pricing plan, including for your legacy
*.appspot.com
No access in console
If your project is on the Spark pricing plan, you'll no longer have access to your bucket in the Firebase console and the Google Cloud console. Instead, you'll be redirected to the Cloud Storage landing 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 to Cloud Storage APIs (like from your app) will fail and return 402 or 403 errors. Follow the guidance in How to regain access above or check out more troubleshooting options below.
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, then reach out to Firebase Support.
Troubleshoot billing setup
The Cloud Billing documentation provides troubleshooting help for common billing and payment issues. For example, you can find solutions if your Indian debit or credit card isn't accepted.
Troubleshoot service account permissions
For Cloud Storage for Firebase to function properly, a service account in your Firebase project needs certain IAM permissions.
If you get errors in the Firebase console 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 in this FAQ.
Pricing plan FAQs
To use Cloud Storage for Firebase, your Firebase project must be on the pay-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 to Firebase Support.
The following billing requirements apply to all projects using Cloud Storage for Firebase:
To provision a new default bucket using the Firebase console or REST API, your project must be on the pay-as-you-go Blaze pricing plan.
All default buckets provisioned after
September 2024 have these characteristics:The buckets follow Google Cloud Storage pricing and usage, which provides an "Always Free" tier for buckets in
,US-CENTRAL1 , andUS-EAST1 .US-WEST1The buckets have a name format of
(instead of the formerPROJECT_ID.firebasestorage.app ).PROJECT_ID.appspot.com
To maintain access to your default bucket and all other Cloud Storage resources, your project must be on the pay-as-you-go Blaze pricing plan. Any
default bucket maintains its current no-cost level of usage even on the Blaze pricing plan.*.appspot.com
Learn more about what happens if you don't upgrade to the Blaze pricing plan. If you have any questions, please reach out to Firebase Support.
Firebase strives to keep our products and our ecosystem safe and secure. As part of that, we're making some changes to Cloud Storage for Firebase and taking proactive steps to prevent abuse on our platform. This includes updating our infrastructure to better align with Google Cloud Storage quota and billing.
Yes. If you have a PROJECT_ID.appspot.com
- 5 GB stored
- 1 GB downloaded / day
- 20,000 uploads / day
- 50,000 downloads / day
Starting PROJECT_ID.firebasestorage.appUS-CENTRAL1US-EAST1US-WEST1
To upgrade your project to the pay-as-you-go Blaze pricing plan, you need to link your project with a Cloud Billing account. You can use the Firebase console workflow to upgrade your pricing plan.
To upgrade the pricing plan, you need to have the IAM role of Owner for your project.
If you have any questions, please reach out to Firebase Support.
To use Cloud Storage for Firebase or to maintain access to your
PROJECT_ID.appspot.com
To upgrade your project, link it with a Cloud Billing account. You can use the Firebase console workflow to upgrade your pricing plan.
If you haven't yet provisioned a default Cloud Storage bucket 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 your Cloud Storage resources, including your default bucket.
You won't be able to view buckets or access their data in the Firebase console or the Google Cloud console.
Any data will remain in your buckets, but it will be inaccessible until you upgrade to the Blaze pricing plan.
If you have any questions, please reach out to Firebase Support.
If you have a PROJECT_ID.appspot.com
- 5 GB stored
- 1 GB downloaded / day
- 20,000 uploads / day
- 50,000 downloads / day
If you have any questions, please reach out to Firebase Support.
Changes for the default Cloud Storage bucket
Review the following FAQs for more details about these requirements. If you have any questions, please reach out to Firebase Support.
No. When you upgrade to the Blaze pricing plan, the name of your default Cloud Storage bucket does not change.
If you created your default bucket before
September 2024 , then your default bucket has a name format of .PROJECT_ID.appspot.comThe only exception is if you delete your
bucket and provision a new default bucket.*.appspot.comIf you created your default bucket recently (after
September 2024 ), then your default bucket has a name format of .PROJECT_ID.firebasestorage.app
A deleted bucket is restorable using the Cloud Storage Buckets: restore API until its hard delete time has elapsed.
If you delete your PROJECT_ID.appspot.com
Instead, you can create a new default Cloud Storage bucket (if your project is on
the Blaze pricing plan) that has a name format of
PROJECT_ID.firebasestorage.appUS-CENTRAL1US-EAST1US-WEST1
No. You do not need to update your app's codebase.
All existing PROJECT_ID.appspot.com
As long as your project is on the pay-as-you-go Blaze pricing plan, your codebase will
continue to interact with the PROJECT_ID.appspot.com
No. You do not need to move your data out of your
PROJECT_ID.appspot.com
As long as you upgrade your project to the pay-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 default Cloud Storage for Firebase buckets 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 to Firebase Support.
The following changes apply to REST APIs that involve Cloud Storage for Firebase:
The
projects.defaultBucket.createendpoint has changed:To call this endpoint, your project must be on the pay-as-you-go Blaze pricing plan.
Default buckets provisioned by this endpoint have the name format of
(instead of the formerPROJECT_ID.firebasestorage.app ).PROJECT_ID.appspot.comThese default buckets follow Google Cloud Storage pricing and usage, which provides an "Always Free" tier for buckets in
,US-CENTRAL1 , andUS-EAST1 .US-WEST1
The
projects.defaultLocation.finalizeandprojects.availableLocations.listendpoints have been shut down and return404: METHOD_NOT_FOUNDerrors.Instead, to set a resource's location programmatically, you should use the resource-specific APIs. For example, set the locations of the default Cloud Storage bucket and the default Cloud Firestore instance during their individual provisioning when calling
projects.defaultBucket.createandprojects.databases.create, respectively. For more details about replacements for REST APIs and locations, see the FAQ: How do I set or get the location for a "default Google Cloud resource"?
The following changes apply to using Terraform with Cloud Storage for Firebase:
You can no longer provision the default Cloud Storage for Firebase bucket using Terraform. This is because you can no longer provision this bucket via Google App Engine. Instead, you can do one of the following:
Provision the bucket by calling
projects.defaultBucket.create. This API is not yet available via Terraform.Provision the bucket through the Firebase console. To get started, go to Databases & Storage > Storage in the Firebase console.
Additionally, note the following about
*.firebasestorage.app
Your project must be on the pay-as-you-go Blaze pricing plan to provision a default Cloud Storage bucket.
You no longer need to provision your default Cloud Firestore instance before your default Cloud Storage bucket.
The location you select for your default Cloud Firestore instance is not applicable to your default Cloud Storage bucket (this means that your default Cloud Firestore instance and your default Cloud Storage bucket can be in different locations).
The name format of the default Cloud Storage bucket is
(instead of the formerPROJECT_ID.firebasestorage.app ).PROJECT_ID.appspot.com
Changes for "default Google Cloud resources"
The "default Google Cloud resources" are any project resources associated with Google App Engine, including the following:
- default Cloud Firestore instance
- default Cloud Storage for Firebase bucket (specifically those with the name
format of
)PROJECT_ID.appspot.com - Google Cloud Scheduler (specifically for 1st gen scheduled functions)
With many changes over the years to the Firebase ecosystem, the associations of Firebase-related resources to Google App Engine have been changing.
Review the following FAQs for more details about these requirements. If you have any questions, please reach out to Firebase Support.
The "location for default Google Cloud resources" is the location setting for any project resources associated with Google App Engine, including the following:
- default Cloud Firestore instance
- default Cloud Storage for Firebase bucket (specifically those with the name
format of
)PROJECT_ID.appspot.com - Google Cloud 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 the Google App Engine app in your project. This, in turn, sets the location for all the resources associated with Google App Engine.
Note the following:
Any default Cloud Storage bucket provisioned before
September 2024 (with a name format of ) is associated with Google App Engine. This means the following:PROJECT_ID.appspot.com- The bucket's location sets the location of resources associated with Google App Engine (like the location of the default Cloud Firestore instance).
Any default Cloud Storage bucket provisioned after
September 2024 (with the name format of ) is not associated with Google App Engine. This means the following:PROJECT_ID.firebasestorage.appProvisioning your default Cloud Storage bucket does not set the location of resources associated with Google App Engine (like the location of the default Cloud Firestore instance).
Provisioning your default Cloud Firestore instance does not set the location of your project's default Cloud Storage bucket.
The locations available for your default Cloud Storage bucket are the same locations available for Google Cloud Storage (rather than limited to those for Google App Engine).
The "default Google Cloud resources" are any project resources associated with Google App Engine, including the following:
- default Cloud Firestore instance
- default Cloud Storage for Firebase bucket (specifically those with the name
format of
)PROJECT_ID.appspot.com - Google Cloud Scheduler (specifically for 1st gen scheduled functions)
The concept of "default Google Cloud resources" doesn't apply to
default Cloud Storage buckets with the name format of
PROJECT_ID.firebasestorage.app
If you want to set or get the location for any resource in a project, then you should interact directly with the resource instead.
Default Cloud Storage for Firebase bucket
In the Firebase console:
- Set and find the location of a default Cloud Storage bucket in the Storage section of the Firebase console.
Using REST APIs:
Set the location of a default Cloud Storage bucket during its provisioning when calling
projects.defaultBucket.create.Note that calling this endpoint requires the pay-as-you-go Blaze pricing plan. So before attempting to create a default bucket, make sure that the project is linked to a Cloud Billing account (for example, using
projects.updateBillingInfo).Get the location of a default Cloud Storage bucket using
projects.buckets.get.
Default Cloud Firestore instance
Note that if you have a legacy *.appspot.com
In the Firebase console:
- Set and find the location of a default Cloud Firestore instance in the Firestore section of the Firebase console.
Using REST APIs:
Set the location of a default Cloud Firestore instance during its provisioning when calling
projects.databases.create.Get the location of a default Cloud Firestore instance using
projects.databases.get.
Scheduled functions (1st gen)
Note that if you have a legacy *.appspot.com
Set the location of a scheduled function during its setup and deployment.
Get the location of a scheduled function from the topic name of its job and function in the Google Cloud console (
.firebase-schedule-FUNCTION_NAME-REGION