The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON
and synchronized in realtime to every connected client. When you build
cross-platform apps with our Apple platforms, Android, and JavaScript SDKs, all of your
clients share one Realtime Database instance and automatically receive updates with
the newest data.
Alternatively, consider trying Cloud Firestore for modern
applications requiring richer data models, queryability, scalability and higher
availability.
Instead of typical HTTP requests, the Firebase Realtime Database uses data
synchronization—every time data changes, any connected device receives
that update within milliseconds. Provide collaborative and
immersive experiences without thinking about networking code.
Offline
Firebase apps remain responsive even when offline because the
Firebase Realtime Database SDK persists your data to disk. Once connectivity
is reestablished, the client device receives any changes it missed,
synchronizing it with the current server state.
Accessible from Client Devices
The Firebase Realtime Database can be accessed directly from a mobile device
or web browser; there's no need for an application server. Security and
data validation are available through the Firebase Realtime Database
Security Rules, expression-based rules that are executed when data is
read or written.
Scale across multiple databases
With Firebase Realtime Database on the Blaze pricing plan, you can support
your app's data needs at scale by splitting your data across multiple
database instances in the same Firebase project. Streamline authentication
with Firebase Authentication on your project and authenticate users across
your database instances. Control access to the data in each database with
custom Firebase Realtime Database Security Rules for each database instance.
How does it work?
The Firebase Realtime Database lets you build rich, collaborative applications
by allowing secure access to the database directly from client-side code. Data
is persisted locally, and even while offline, realtime events continue to fire,
giving the end user a responsive experience. When the device regains connection,
the Realtime Database synchronizes the local data changes with the remote updates
that occurred while the client was offline, merging any conflicts automatically.
The Realtime Database provides a flexible, expression-based rules language,
called Firebase Realtime Database Security Rules, to define how your data should be
structured and when data can be read from or written to. When integrated with
Firebase Authentication, developers can define who has access to what data, and how
they can access it.
The Realtime Database is a NoSQL database and as such has different optimizations
and capabilities compared to a relational database. The Realtime Database API is
designed to only allow operations that can be executed quickly. This lets you
build a great realtime experience that can serve millions of users without
compromising on responsiveness. Because of this, it is important to think about
how users need to access your data and then
structure it accordingly.
Implementation path
Integrate the Firebase Realtime Database SDKs
Quickly include clients using Gradle, CocoaPods, or a script include.
Create Realtime Database References
Reference your JSON data, such as "users/user:1234/phone_number" to set
data or subscribe to data changes.
Set Data and Listen for Changes
Use these references to write data or subscribe to changes.
Enable Offline Persistence
Allow data to be written to the device's local disk so it can be available
while offline.
Secure your data
Use Firebase Realtime Database Security Rules to secure your data.
Firebase Remote Config stores developer specified
key-value pairs to change the behavior and appearance of your app without
requiring users to download an update.
Firebase Hosting hosts the HTML, CSS, and
JavaScript for your website as well as other developer-provided assets like
graphics, fonts, and icons.
Cloud Storage stores files such as images,
videos, and audio as well as other user-generated content.
[[["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,["Firebase Realtime Database \nplat_ios plat_android plat_web plat_flutter plat_cpp plat_unity \nStore and sync data with our NoSQL cloud database. Data\nis synced across all clients in realtime, and remains available when your\napp goes offline. \n\nRealtime Database \n\nCloud Firestore Preferred \nThe Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON\nand synchronized in realtime to every connected client. When you build\ncross-platform apps with our Apple platforms, Android, and JavaScript SDKs, all of your\nclients share one Realtime Database instance and automatically receive updates with\nthe newest data.\n\nAlternatively, consider trying [Cloud Firestore](/docs/firestore) for modern\napplications requiring richer data models, queryability, scalability and higher\navailability.\n\n\u003cbr /\u003e\n\nReady to get started? Choose your platform:\n\n[iOS+](/docs/database/ios/start)\n[Android](/docs/database/android/start)\n[Web](/docs/database/web/start)\n[Flutter](/docs/database/flutter/start)\n[Unity](/docs/database/unity/start)\n[C++](/docs/database/cpp/start)\n[Admin](/docs/database/admin/start)\n[REST API](/docs/database/rest/start) \n\nKey capabilities\n\n|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Realtime | Instead of typical HTTP requests, the Firebase Realtime Database uses data synchronization---every time data changes, any connected device receives that update within milliseconds. Provide collaborative and immersive experiences without thinking about networking code. |\n| Offline | Firebase apps remain responsive even when offline because the Firebase Realtime Database SDK persists your data to disk. Once connectivity is reestablished, the client device receives any changes it missed, synchronizing it with the current server state. |\n| Accessible from Client Devices | The Firebase Realtime Database can be accessed directly from a mobile device or web browser; there's no need for an application server. Security and data validation are available through the Firebase Realtime Database Security Rules, expression-based rules that are executed when data is read or written. |\n| Scale across multiple databases | With Firebase Realtime Database on the Blaze pricing plan, you can support your app's data needs at scale by splitting your data across multiple database instances in the same Firebase project. Streamline authentication with Firebase Authentication on your project and authenticate users across your database instances. Control access to the data in each database with custom Firebase Realtime Database Security Rules for each database instance. |\n\nHow does it work?\n\nThe Firebase Realtime Database lets you build rich, collaborative applications\nby allowing secure access to the database directly from client-side code. Data\nis persisted locally, and even while offline, realtime events continue to fire,\ngiving the end user a responsive experience. When the device regains connection,\nthe Realtime Database synchronizes the local data changes with the remote updates\nthat occurred while the client was offline, merging any conflicts automatically.\n\nThe Realtime Database provides a flexible, expression-based rules language,\ncalled Firebase Realtime Database Security Rules, to define how your data should be\nstructured and when data can be read from or written to. When integrated with\nFirebase Authentication, developers can define who has access to what data, and how\nthey can access it.\n\nThe Realtime Database is a NoSQL database and as such has different optimizations\nand capabilities compared to a relational database. The Realtime Database API is\ndesigned to only allow operations that can be executed quickly. This lets you\nbuild a great realtime experience that can serve millions of users without\ncompromising on responsiveness. Because of this, it is important to think about\nhow users need to access your data and then\n[structure it accordingly](/docs/database/web/structure-data).\n\nImplementation path\n\n|---|-----------------------------------------------|------------------------------------------------------------------------------------------------------------|\n| | Integrate the Firebase Realtime Database SDKs | Quickly include clients using Gradle, CocoaPods, or a script include. |\n| | Create Realtime Database References | Reference your JSON data, such as \"users/user:1234/phone_number\" to set data or subscribe to data changes. |\n| | Set Data and Listen for Changes | Use these references to write data or subscribe to changes. |\n| | Enable Offline Persistence | Allow data to be written to the device's local disk so it can be available while offline. |\n| | Secure your data | Use Firebase Realtime Database Security Rules to secure your data. |\n\nStore other types of data\n\n- [Cloud Firestore](/docs/firestore) is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud. To learn more about the differences between database options, see [Choose a database: Cloud Firestore or Realtime Database](/docs/firestore/rtdb-vs-firestore).\n- [Firebase Remote Config](/docs/remote-config) stores developer specified key-value pairs to change the behavior and appearance of your app without requiring users to download an update.\n- [Firebase Hosting](/docs/hosting) hosts the HTML, CSS, and JavaScript for your website as well as other developer-provided assets like graphics, fonts, and icons.\n- [Cloud Storage](/docs/storage) stores files such as images, videos, and audio as well as other user-generated content.\n\nNext steps:\n\n- Set data and listen for changes using the [Apple platforms](/docs/database/ios/start), [Android](/docs/database/android/start), [Web](/docs/database/web/start), [Admin](/docs/database/admin/start) SDKs, or the [REST API](/docs/database/rest/start).\n- Add Firebase Realtime Database to your [Apple](/docs/database/ios/start), [Android](/docs/database/android/start), or [Web](/docs/database/web/start) app.\n- Learn about how to secure your files using [Firebase Realtime Database Security Rules](/docs/database/security)."]]