Export project data to BigQueryStay organized with collectionsSave and categorize content based on your preferences.
Firebase provides tools in theFirebaseconsole to explore and analyze your
project's historical data. These tools can help you answer many questions about
how your apps are being used. Sometimes, though, you also want to set up your
own queries to answer your own questions.
You can do this by exporting your project data from Firebase intoBigQuery. WithBigQuery, you can analyze your data withBigQuerySQL or
export the data to use with your own tools.
You can configure Firebase to export data toBigQueryfrom the
following Firebase products:
To view or manage settings for data export toBigQuery, you must have
the required level of access.
If you don't have the necessary Firebase access, you can ask a Firebase
project Owner to assign you the applicable role via theFirebaseconsole IAM settings.
If you have questions about accessing your Firebase project,
including finding or assigning an Owner, review thePermissions and access to Firebase projects FAQs.
Project-level
The following table applies to the top-level linking of a Firebase project toBigQuery.
Action inFirebaseconsole
Required IAM permission
IAM role(s) that include required permissions by default
Follow the on-screen instructions to enable export toBigQuery.
What happens when you enable export?
You select the dataset location. After the dataset is created, the location
can't be changed, but you can copy the dataset to a different location
or manually move (recreate) the dataset in a different location. To learn
more, seeChange the location for existing exports.
This location is only applicable for the data exported intoBigQuery,
and it does not impact the location of data stored for use in theFirebaseconsole.
By default, all apps in your project are linked toBigQueryand
any apps that you later add to the project are automatically linked toBigQuery. You canmanage which apps send data.
Firebase exports a copy of your existing data toBigQuery. The
initial propagation of data for export may take up to 48 hours.
Firebase sets up daily syncs of your data toBigQuery.
After you link your project, you usually need to wait until the next day's
sync for your first set of data to be exported toBigQuery.
The daily sync happens once per day, regardless of any scheduled export
that you might have set up inBigQuery. Note that the timing and
duration of the sync job can change, so we don't recommend scheduling
downstream operations or jobs based on a specific timing of the export.
After you enable a product forBigQueryexport and create a dataset,
you can't change the location of that dataset. However, you can copy your
existing dataset to a new dataset that has a different location and reset your
data export to that new location. Learn aboutBigQuerydataset locations.
Select the product for which you want to change the location for data
export
Google Analytics
To change the location of an existingGoogle Analyticsexport toBigQuery,
follow these instructions:
In theFirebaseconsole, go to theIntegrationspage.
Then do the following:
In theBigQuerycard, clickManage.
Toggle off theGoogle Analyticsslider to disableBigQuery.
In theGoogle Cloudconsole, go to theBigQuerypage.
Then do the following:
Create a temporary dataset to store a copy of the existing data from
your original dataset. Assign the temporary dataset adifferent namethan the name of the original dataset.
Copyormovethe data from your original dataset to the temporary dataset.
Delete the original dataset.
Create a new, permanent dataset with thesame nameas your original
dataset
(analytics_ANALYTICS_PROPERTY_ID),
then select the new region.
Copy or move the data from the temporary dataset to the new dataset,
then delete the temporary dataset.
Go back to theFirebaseconsole and theBigQuerycard.
Then do the following:
Toggle on theGoogle Analyticsslider to re-enable theBigQueryintegration.
Select the apps for which you want to enable the export.
Cloud Messaging
To change the location of an existingCloud Messagingexport toBigQuery,
follow these instructions:
In theFirebaseconsole, go to theIntegrationspage.
Then do the following:
In theBigQuerycard, clickManage.
Toggle off theCloud Messagingslider to disableBigQuery.
In theGoogle Cloudconsole, go to theBigQuerypage.
Then do the following:
Create a temporary dataset to store a copy of the existing data from
your original dataset. Assign the temporary dataset adifferent namethan the name of the original dataset.
Copyormovethe data from your original dataset to the temporary dataset.
Delete the original dataset.
Create a new, permanent dataset with thesame nameas your original
dataset (firebase_messaging), then
select the new region.
Copy or move the data from the temporary dataset to the new dataset,
then delete the temporary dataset.
Go back to theFirebaseconsole and theBigQuerycard.
Then do the following:
Toggle on theCloud Messagingslider to re-enable theBigQueryintegration.
Select the apps for which you want to enable the export.
Go back to theGoogle Cloudconsole and theBigQuerypageto verify that a transfer configuration is created forCloud Messagingin the new region.
Crashlytics
To change the location of an existingCrashlyticsexport toBigQuery,
follow these instructions:
In theFirebaseconsole, go to theIntegrationspage.
Then do the following:
In theBigQuerycard, clickManage.
Toggle off theCrashlyticsslider to disableBigQuery.
In theGoogle Cloudconsole, go to theBigQuerypage.
Then do the following:
Create a temporary dataset to store a copy of the existing data from
your original dataset. Assign the temporary dataset adifferent namethan the name of the original dataset.
Copyormovethe data from your original dataset to the temporary dataset.
Delete the original dataset.
Create a new, permanent dataset with thesame nameas your original
dataset (firebase_crashlytics), then
select the new region.
Copy or move the data from the temporary dataset to the new dataset,
then delete the temporary dataset.
Go back to theFirebaseconsole and theBigQuerycard.
Then do the following:
Toggle on theCrashlyticsslider to re-enable theBigQueryintegration.
Select the apps for which you want to enable the export.
Go back to theGoogle Cloudconsole and theBigQuerypageto verify that a transfer configuration is created forCrashlyticsin the new region.
Performance Monitoring
To change the location of an existingPerformance Monitoringexport toBigQuery,
follow these instructions:
In theFirebaseconsole, go to theIntegrationspage.
Then do the following:
In theBigQuerycard, clickManage.
Toggle off thePerformance Monitoringslider to disableBigQuery.
In theGoogle Cloudconsole, go to theBigQuerypage.
Then do the following:
Create a temporary dataset to store a copy of the existing data from
your original dataset. Assign the temporary dataset adifferent namethan the name of the original dataset.
Copyormovethe data from your original dataset to the temporary dataset.
Delete the original dataset.
Create a new, permanent dataset with thesame nameas your original
dataset (firebase_performance), then
select the new region.
Copy or move the data from the temporary dataset to the new dataset,
then delete the temporary dataset.
Go back to theFirebaseconsole and theBigQuerycard.
Then do the following:
Toggle on thePerformance Monitoringslider to re-enable theBigQueryintegration.
Select the apps for which you want to enable the export.
Go back to theGoogle Cloudconsole and theBigQuerypageto verify that a transfer configuration is created forPerformance Monitoringin the new region.
Pricing and theBigQuerysandbox
If your Firebase project is on the no-cost Spark pricing plan, you can linkGoogle Analytics,Cloud Messaging,Crashlytics, andPerformance Monitoringto theBigQuerysandbox,
which provides no-cost access toBigQuery. Refer toUsing theBigQuerysandboxfor information on theBigQuerysandbox's capabilities.
If your Firebase project is on the pay-as-you-go Blaze pricing plan, you can linkGoogle Analytics,Cloud Messaging,Crashlytics,Performance Monitoring, andA/B TestingtoBigQuery. Your use ofBigQueryis subject
to normalBigQuerypricing,
which includes limited no-cost use.
[[["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 2025-10-20 UTC."],[],[]]