Use our flexible, scalable NoSQL cloud database, built
on Google Cloud infrastructure, to store and sync data for client- and
server-side development.
Cloud Firestore is a flexible, scalable database for mobile, web,
and server development from Firebase and Google Cloud. Like
Firebase Realtime Database, it keeps your data in sync across client apps through
realtime listeners and offers offline support for mobile and web so you can
build responsive apps that work regardless of network latency or Internet
connectivity. Cloud Firestore also offers seamless integration with other Firebase
and Google Cloud products, including Cloud Functions.
The Cloud Firestore data model supports flexible, hierarchical data structures.
Store your data in documents, organized into collections. Documents
can contain complex nested objects in addition to subcollections.
Expressive querying
In Cloud Firestore, you can use queries to retrieve individual,
specific documents or to retrieve all the documents in a collection that
match your query parameters. Your queries can include multiple, chained
filters and combine filtering and sorting. They're also indexed by default,
so query performance is proportional to the size of your result set, not
your data set.
Realtime updates
Like Realtime Database, Cloud Firestore uses data synchronization to update data on
any connected device. However, it's also designed to make simple, one-time
fetch queries efficiently.
Offline support
Cloud Firestore caches data that your app is actively using, so the app can write,
read, listen to, and query data even if the device is offline. When the
device comes back online, Cloud Firestore synchronizes any local changes back
to Cloud Firestore.
Designed to scale
Cloud Firestore brings you the best of Google Cloud's powerful
infrastructure: automatic multi-region data replication, strong
consistency guarantees, atomic batch operations, and real transaction
support. We've designed Cloud Firestore to handle the toughest database
workloads from the world's biggest apps.
How does it work?
Cloud Firestore is a cloud-hosted, NoSQL database that your Apple, Android, and web
apps can access directly via native SDKs. Cloud Firestore is also available
in native Node.js, Java, Python, Unity, C++ and Go SDKs, in addition to REST and
RPC APIs.
Following Cloud Firestore's NoSQL data model, you store data in documents that
contain fields mapping to values. These documents are stored in
collections, which are containers for your documents that you can use to
organize your data and build queries. Documents support many different
data types, from simple strings and numbers, to
complex, nested objects. You can also create subcollections within
documents and build hierarchical data structures that scale as your
database grows. The Cloud Firestoredata model supports whatever
data structure works best for your app.
Additionally, querying in Cloud Firestore is expressive, efficient, and flexible.
Create shallow queries to retrieve data at the document level without needing to
retrieve the entire collection, or any nested subcollections. Add sorting,
filtering, and limits to your queries or cursors to
paginate your results. To keep data in your apps current, without retrieving
your entire database each time an update happens, add realtime listeners.
Adding realtime listeners to your app notifies you with a data snapshot whenever
the data your client apps are listening to changes, retrieving only the new
changes.
Protect access to your data in Cloud Firestore with Firebase Authentication and
Cloud Firestore Security Rules for Android, Apple platforms, and JavaScript, or Identity
and Access Management (IAM) for server-side languages.
Implementation path
Integrate the Cloud Firestore SDKs
Quickly include clients via Gradle, CocoaPods, or a script include.
Secure your data
Use Cloud Firestore Security Rules or Identity and Access Management (IAM) to secure
your data for mobile/web and server development, respectively.
Add Data
Create documents and collections in your database.
Get Data
Create queries or use realtime listeners to retrieve data from the
database.
Next steps
Get started with Cloud Firestore — set up your database, then add
data and start reading it.
[[["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-08-15 UTC."],[],[],null,["Cloud Firestore \nplat_ios plat_android plat_web plat_flutter plat_cpp plat_unity plat_node plat_java plat_python plat_go \nUse our flexible, scalable NoSQL cloud database, built\non Google Cloud infrastructure, to store and sync data for client- and\nserver-side development. \n\nCloud Firestore is a flexible, scalable database for mobile, web,\nand server development from Firebase and Google Cloud. Like\nFirebase Realtime Database, it keeps your data in sync across client apps through\nrealtime listeners and offers offline support for mobile and web so you can\nbuild responsive apps that work regardless of network latency or Internet\nconnectivity. Cloud Firestore also offers seamless integration with other Firebase\nand Google Cloud products, including Cloud Functions.\n\n[Get started](/docs/firestore/quickstart)\n\nKey capabilities\n\n|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Flexibility | The Cloud Firestore data model supports flexible, hierarchical data structures. Store your data in documents, organized into collections. Documents can contain complex nested objects in addition to subcollections. |\n| Expressive querying | In Cloud Firestore, you can use queries to retrieve individual, specific documents or to retrieve all the documents in a collection that match your query parameters. Your queries can include multiple, chained filters and combine filtering and sorting. They're also indexed by default, so query performance is proportional to the size of your result set, not your data set. |\n| Realtime updates | Like Realtime Database, Cloud Firestore uses data synchronization to update data on any connected device. However, it's also designed to make simple, one-time fetch queries efficiently. |\n| Offline support | Cloud Firestore caches data that your app is actively using, so the app can write, read, listen to, and query data even if the device is offline. When the device comes back online, Cloud Firestore synchronizes any local changes back to Cloud Firestore. |\n| Designed to scale | Cloud Firestore brings you the best of Google Cloud's powerful infrastructure: automatic multi-region data replication, strong consistency guarantees, atomic batch operations, and real transaction support. We've designed Cloud Firestore to handle the toughest database workloads from the world's biggest apps. |\n\nHow does it work?\n\nCloud Firestore is a cloud-hosted, NoSQL database that your Apple, Android, and web\napps can access directly via native SDKs. Cloud Firestore is also available\nin native Node.js, Java, Python, Unity, C++ and Go SDKs, in addition to REST and\nRPC APIs.\n\nFollowing Cloud Firestore's NoSQL data model, you store data in documents that\ncontain fields mapping to values. These documents are stored in\ncollections, which are containers for your documents that you can use to\norganize your data and build queries. Documents support many different\n[data types](/docs/firestore/manage-data/data-types), from simple strings and numbers, to\ncomplex, nested objects. You can also create subcollections within\ndocuments and build hierarchical data structures that scale as your\ndatabase grows. The Cloud Firestore [data model](/docs/firestore/data-model) supports whatever\ndata structure works best for your app.\n\nAdditionally, querying in Cloud Firestore is expressive, efficient, and flexible.\nCreate shallow queries to retrieve data at the document level without needing to\nretrieve the entire collection, or any nested subcollections. Add sorting,\nfiltering, and limits to your queries or cursors to\npaginate your results. To keep data in your apps current, without retrieving\nyour entire database each time an update happens, add realtime listeners.\nAdding realtime listeners to your app notifies you with a data snapshot whenever\nthe data your client apps are listening to changes, retrieving only the new\nchanges.\n\nProtect access to your data in Cloud Firestore with Firebase Authentication and\nCloud Firestore Security Rules for Android, Apple platforms, and JavaScript, or Identity\nand Access Management (IAM) for server-side languages.\n\nImplementation path\n\n|---|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|\n| | Integrate the Cloud Firestore SDKs | Quickly include clients via Gradle, CocoaPods, or a script include. |\n| | Secure your data | Use Cloud Firestore Security Rules or Identity and Access Management (IAM) to secure your data for mobile/web and server development, respectively. |\n| | Add Data | Create documents and collections in your database. |\n| | Get Data | Create queries or use realtime listeners to retrieve data from the database. |\n\nNext steps\n\n- [Get started](/docs/firestore/quickstart) with Cloud Firestore --- set up your database, then add data and start reading it.\n- Learn more about the Cloud Firestore [data model](/docs/firestore/data-model).\n- Explore the [differences between Realtime Database and Cloud Firestore](/docs/firestore/rtdb-vs-firestore)."]]