Skip to main content
Firebase
Build
  • Build
  • Get to market quickly and securely with products that can scale globally
  • Go to Build
  • Build Products
  • App Check
  • App Hosting
  • Authentication
  • Cloud Functions
  • Cloud Storage
  • Data Connect
  • Extensions
  • Firebase ML
  • Firestore
  • Genkit
  • Hosting
  • Realtime Database
  • Firebase AI Logic client SDKs
  • Generative AI
Run
  • Run
  • Run your app with confidence and deliver the best experience for your users
  • Go to Run
  • Run Products
  • A/B Testing
  • App Distribution
  • Cloud Messaging
  • Crashlytics
  • Google Analytics
  • In-App Messaging
  • Performance Monitoring
  • Remote Config
  • Test Lab
Solutions Pricing Docs
  • Overview
  • Fundamentals
  • AI
  • Build
  • Run
  • Reference
  • Samples
Community
  • Learn
  • Events
  • Stories
Support
/
  • English
  • Deutsch
  • Español – América Latina
  • Français
  • Indonesia
  • Italiano
  • Polski
  • Português – Brasil
  • Tiếng Việt
  • Türkçe
  • Русский
  • עברית
  • العربيّة
  • فارسی
  • हिंदी
  • বাংলা
  • ภาษาไทย
  • 中文 – 简体
  • 中文 – 繁體
  • 日本語
  • 한국어
Blog Studio Go to console Sign in
  • Documentation
  • Realtime Database
Overview Fundamentals
  • Add Firebase - Apple platforms (iOS+)
  • Add Firebase - Android
  • Add Firebase - Web
  • Add Firebase - Flutter
  • Add Firebase - C++
  • Add Firebase - Unity
  • Add Firebase - Server environments
  • Manage Firebase projects
  • Supported platforms & frameworks
  • Use Emulator Suite
  • AI assistance with Gemini in Firebase
AI
  • Develop with AI
  • Firebase Studio
    Build and ship full-stack AI-infused apps right from your browser.
  • Gemini in Firebase
    Streamline development with this AI-powered assistant in the Firebase console.
  • Build AI-powered apps
  • Firebase AI Logic
    Build AI-powered mobile and web apps and features with the Gemini and Imagen models using Firebase AI Logic
  • Genkit
    Build full-stack AI-powered applications using this open-source framework
Build
  • Emulator Suite
  • Authentication
  • App Check
  • Data Connect
  • Firestore
  • Realtime Database
  • Storage
  • Security Rules
  • App Hosting
  • Hosting
  • Cloud Functions
  • Extensions
  • ML
Run
  • Test Lab
  • App Distribution
  • Crashlytics
  • Performance Monitoring
  • Remote Config
  • A/B Testing
  • Analytics
  • Cloud Messaging
  • In-App Messaging
  • Dynamic Links
  • Google AdMob
  • Google Ads
Reference Samples
Firebase
  • Build
    • More
  • Run
    • More
  • Solutions
  • Pricing
  • Docs
    • More
    • Overview
    • Fundamentals
      • More
    • AI
      • More
    • Build
      • More
    • Run
      • More
    • Reference
    • Samples
  • Community
    • More
  • Support
  • Blog
  • Studio
  • Go to console
  • Overview
  • Emulator Suite
    • Introduction
    • Connect your app and prototype
      • Get started
      • Connect to the Authentication emulator
      • Connect to the Realtime Database emulator
      • Connect to the Firestore emulator
      • Connect to the Cloud Storage for Firebase emulator
      • Use the Hosting emulator
      • Use the App Hosting emulator
      • Connect to the Cloud Functions emulator
      • Use the Extensions emulator
    • Install, configure and integrate
  • Authentication
    • Introduction
    • Where do I start?
    • Users in Firebase Projects
    • iOS+
      • Sign in with a pre-built UI
      • Get Started
      • Manage Users
      • Password Authentication
      • Email Link Authentication
      • Email Link Migration
      • Sign in with Google
      • Facebook Login
      • Sign in with Apple
      • Twitter Login
      • GitHub
      • Microsoft
      • Yahoo
      • Game Center Sign-in
      • Phone Number
      • OpenID Connect
      • Use a Custom Auth System
      • Anonymous Authentication
      • Enabling cross-app authentication with shared Keychain
      • Link Multiple Auth Providers
      • SMS Multi-factor Auth
      • TOTP Multi-factor Auth
      • Passing State in Email Actions
      • Handle Errors
    • Android
      • Sign in with a pre-built UI
      • Get Started
      • Manage Users
      • Password Authentication
      • Email Link Authentication
      • Email Link Migration
      • Sign in with Google
      • Facebook Login
      • Sign in with Apple
      • Twitter
      • GitHub
      • Microsoft
      • Yahoo
      • Play Games Sign-in
      • Phone Number
      • OpenID Connect
      • Use a Custom Auth System
      • Anonymous Authentication
      • SMS Multi-factor Auth
      • TOTP Multi-factor Auth
      • Link Multiple Auth Providers
      • Passing State in Email Actions
    • Flutter
      • Get Started
      • Manage Users
      • Password Authentication
      • Email Link Authentication
      • Federated Identity & Social
      • Phone Number
      • Use a Custom Auth System
      • Anonymous Authentication
      • Multi-factor Auth
      • Link Multiple Auth Providers
      • Passing State in Email Actions
      • Handle Errors
    • Web
      • Sign in with a pre-built UI
      • Get Started
      • Manage Users
      • Password Authentication
      • Email Link Authentication
      • Sign in with Google
      • Facebook Login
      • Sign in with Apple
      • Twitter
      • GitHub
      • Microsoft
      • Yahoo
      • Phone Number
      • OpenID Connect
      • SAML
      • Use a Custom Auth System
      • Anonymous Authentication
      • SMS Multi-factor Auth
      • TOTP Multi-factor Auth
      • Link Multiple Auth Providers
      • Customize Dependencies
      • OAuth Sign-In for Cordova
      • Sign in users from a Chrome extension
      • Auth State Persistence
      • Passing State in Email Actions
      • Service Worker Sessions
      • Best practices for signInWithRedirect flows
    • C++
      • Get Started
      • Manage Users
      • Password Authentication
      • Sign in with Google
      • Play Games Sign-in
      • GitHub
      • Facebook Login
      • Sign in with Apple
      • Twitter Login
      • Microsoft
      • Yahoo
      • Phone Number
      • Use a Custom Auth System
      • Anonymous Authentication
      • Link Multiple Auth Providers
    • Unity
      • Get Started
      • Manage Users
      • Password Authentication
      • Sign in with Google
      • Play Games Sign-in
      • GitHub Authentication
      • Facebook Login
      • Sign in with Apple
      • Twitter Login
      • Microsoft
      • Yahoo
      • Phone Number
      • Use a Custom Auth System
      • Anonymous Authentication
      • Link Multiple Auth Providers
    • Admin
      • Introduction
      • Manage Users
      • Import Users
      • Create Custom Tokens
      • Verify ID Tokens
      • Manage Multi-factor Users
      • Manage User Sessions
      • Manage Session Cookies
      • Control Access with Custom Claims
      • Generating Email Action Links
      • Errors
    • Configure OAuth identity providers programmatically
    • Customize the Email Action Handler
    • Extend with Cloud Functions
    • Extend with blocking functions
    • Email Custom Domains
    • Case Studies
    • Usage Limits
  • App Check
    • Introduction
    • Get started
    • Default providers
      • iOS+ (DeviceCheck)
      • iOS+ (App Attest)
      • Android (Play Integrity)
      • Web (reCAPTCHA Enterprise)
      • Web (reCAPTCHA v3)
      • Flutter
      • Unity
      • C++
    • Custom providers
      • Server implementation
      • iOS+ client implementation
      • Android client implementation
      • Web client implementation
      • Unity client implementation
      • C++ client implementation
    • Debug & test providers
      • Use the debug provider in iOS+
      • Use the debug provider in Android
      • Use the debug provider in web apps
      • Use the debug provider with Flutter
      • Use the debug provider in Unity apps
      • Use the debug provider with C++
    • Monitor request metrics
    • Standard Google services
    • Cloud Functions for Firebase
    • Enable enforcement
    • Standard Google services
    • Cloud Functions for Firebase
    • Protect custom resources
    • Send tokens from the client
      • iOS+
      • Android
      • Web
      • Flutter
      • Unity
      • C++
    • Verify tokens on the backend
  • Data Connect
    • Introduction
    • Pricing and billing
    • Get started
    • Get started (local development)
    • Design schemas and operations
    • Design Data Connect schemas
    • Implement Data Connect queries
    • Implement Data Connect mutations
    • Secure operations with authorization
    • Develop and test with Data Connect
    • Seed test data and perform bulk operations
    • Generate Web SDKs
    • Generate Android SDKs
    • Generate iOS SDKs
    • Generate Flutter SDKs
    • Use the Data Connect emulator for CI/CD
    • Manage Data Connect projects
    • Manage schemas and connectors
    • Manage services and databases
    • Run privileged operations with the Firebase Admin SDK
    • Data Connect solutions
    • Use AI assistance for schemas, queries and mutations
    • Perform vector similarity search
    • Perform full-text search
    • GraphQL language reference guides
    • Directives reference
    • Queries reference
    • Mutations reference
    • Objects reference
    • Input objects reference
    • Scalars reference
    • Enums reference
    • Additional reference guides
    • CLI reference
    • Configuration and security reference
    • Common Expression Language (CEL) reference
    • Cloud Audit Logging reference
  • Cloud Firestore
    • Introduction
    • Cloud Firestore editions
    • Standard edition
    • Discover
      • Introduction
    • Understand Cloud Firestore
      • Compare Cloud Firestore and Realtime Database
      • Data model
      • Data types
      • SDKs and client libraries
      • Index types
      • Database locations
      • Data bundles
    • Get started
    • Manage databases
    • Add and manage data
      • Structure data
      • Add data
      • Transactions and batched writes
      • Data contention in transaction
      • Delete data
      • Manage Cloud Firestore with the Firebase console
      • Export and import data
      • Manage data retention with time-to-live policies
      • Process data in bulk with Dataflow
      • Move data between projects
      • Bulk delete data
    • Read data
      • Get data
      • Get real-time updates
      • Perform simple and compound queries
      • Order and limit data
      • Query with range & inequality filters on multiple fields
        • Overview
        • Optimize your queries
        • Summarize data with aggregation queries
        • Paginate data with query cursors
        • Access data offline
        • Search with vector embeddings
        • Manage indexes
    • Secure and validate data
      • Overview
      • Get started
      • Structure Security Rules
      • Writing conditions for Security Rules
      • Fix insecure rules
      • Test your Security Rules
      • Securely query data
      • Control access per field
    • Solutions
      • Overview
      • Solutions using Firebase Extensions
      • Integrate with BigQuery
      • Implement an AI-driven chatbot
      • Enrich handling of text
      • Enhance value of media
      • Solutions using guided custom implementations
      • Develop generative AI features
      • Firestore Lite Web SDK
      • Write-time aggregations
      • Distributed counters
      • Full-text search
      • Build presence
      • Secure data access for users and groups
      • Secure data with customer-managed encryption keys (CMEK)
        • About CMEK
        • Use CMEK
      • Delete data with a callable Cloud Function
      • Schedule data exports
      • Sharded timestamps
      • Geo queries
      • Serve bundled Firestore content from a CDN
    • Usage, limits, and pricing
      • Usage and limits
      • Monitor usage
      • Explain query performance
      • Query Explain report reference
      • Understand Cloud Firestore billing
      • Committed use discounts
      • Example Cloud Firestore costs
      • Understand storage size calculations
    • Techniques and best practices
      • Best practices for Cloud Firestore
      • Map data with Swift Codable
      • Understand reads and writes at scale
      • Understand real-time queries at scale
    • Cloud Firestore integrations
      • Use the Cloud Firestore REST API
      • Use Cloud Firestore and Realtime Database
      • Extend with Cloud Functions for Firebase (2nd gen)
      • Extend with Cloud Functions
      • Third-party library integrations
    • API & SDK reference
      • Swift
      • Objective-C
      • Android (Kotlin)
      • Android (Java)
      • Web
      • Flutter
      • Unity
      • C++
      • Cloud Functions
      • Node.js
      • Java
      • Python
      • Go
      • C#
      • PHP
      • Ruby
      • REST
      • RPC
    • Samples
      • iOS
      • Android
      • Web
    • Enterprise edition
    • Discover
      • MongoDB compatibility overview
    • Get started
      • Create a Firestore with MongoDB compatibility database and connect to it
      • Supported MongoDB data types, drivers, and features
        • Supported data types and drivers
        • Supported features: 8.0
        • Supported features: 7.0
        • Supported features: 6.0
        • Supported features: 5.0
        • Supported features: 4.0
        • Supported features: 3.6
    • Manage databases
      • Create and manage databases
    • Connect to a database
      • Authenticate and connect to a database
    • Manage data
      • Bulk data delete
      • Import and export data
    • Migrate
      • Migrate to Firestore with MongoDB compatibility
      • Best practices for bulk data loading
    • Develop
      • Behavior differences
      • Indexes
        • Indexes overview
        • Manage indexes
      • Optimize query execution
        • Identify queries to optimize
        • Analyze query execution with Query Explain
        • Optimize query execution
      • Manage data retention with TTL policies
      • Understand reads and writes at scale
    • Secure data
      • Identity and Access Management (IAM)
      • VPC Service Controls
      • Server-side encryption
      • Secure data with customer-managed encryption keys (CMEK)
        • About CMEK
        • Use CMEK
    • Usage, limits, and pricing
      • Quotas and limits
      • Pricing examples
      • Storage size calculations
      • Query execution reference
      • Locations
    • Monitor and troubleshoot
      • Monitor database metrics
      • Audit logging
      • Resolve latency issues
      • Understand error codes
    • Backup and restore
    • Backups and point-in-time recovery
      • Disaster recovery planning
      • Scheduled backups
      • Create a backup schedule and restore data
      • Perform an in-place restore
      • Point-in-time recovery (PITR)
      • PITR overview
      • Work with PITR
  • Realtime Database
    • Introduction
    • Choose a Database
    • iOS+
      • Get Started
      • Structure Data
      • Read and Write Data
      • Work with Lists of Data
      • Enable Offline Capabilities
    • Android
      • Get Started
      • Structure Data
      • Read and Write Data
      • Work with Lists of Data
      • Enable Offline Capabilities
    • Web
      • Get Started
      • Structure Data
      • Read and Write Data
      • Work with Lists of Data
      • Enable Offline Capabilities
    • Flutter
      • Get Started
      • Structure Data
      • Read and Write Data
      • Work with Lists of Data
      • Enable Offline Capabilities
    • Admin
      • Get Started
      • Structure Data
      • Save Data
      • Retrieve Data
    • REST
      • Get Started
      • Structure Data
      • Save Data
      • Retrieve Data
      • Authenticate REST Requests
    • C++
      • Get Started
      • Structure Data
      • Save Data
      • Retrieve Data
    • Unity
      • Get Started
      • Structure Data
      • Save Data
      • Retrieve Data
    • Security & Rules
      • Understand Rules
      • Get Started
      • Structure Security Rules
      • Write Conditions for Security Rules
      • Index Data
      • Manage Rules via REST
    • Usage and Performance
      • Understand Billing
      • Realtime Database Limits
      • Monitor Database Usage
      • Monitor Database Performance
      • Scale with Multiple Databases
      • Profile Your Database
      • Optimize Database Performance
    • Locations
    • Automated Backups
    • View & edit data in console
    • Extend with Cloud Functions
    • Video series: Firebase for SQL Developers
  • Storage
    • Introduction
    • iOS+
      • Get Started
      • Create a Reference
      • Upload Files
      • Download Files
      • Use File Metadata
      • Delete Files
      • List Files
      • Handle Errors
    • Android
      • Get Started
      • Create a Reference
      • Upload Files
      • Download Files
      • Use File Metadata
      • Delete Files
      • List Files
      • Handle Errors
    • Web
      • Get Started
      • Create a Reference
      • Upload Files
      • Download Files
      • Use File Metadata
      • Delete Files
      • List Files
      • Handle Errors
    • Flutter
      • Get Started
      • Create a Reference
      • Upload Files
      • Download Files
      • Use File Metadata
      • Delete Files
      • List Files
      • Handle Errors
    • Admin
      • Get Started
    • C++
      • Get Started
      • Create a Reference
      • Upload Files
      • Download Files
      • Use File Metadata
      • Delete Files
      • Handle Errors
    • Unity
      • Get Started
      • Create a Reference
      • Upload Files
      • Download Files
      • Use File Metadata
      • Delete Files
      • Handle Errors
    • Security & Rules
      • Understand Security
      • Get Started
      • Structure Security Rules
      • Write Conditions for Security Rules
    • Locations
    • Monitor activity
    • Manage stored files in console
    • Extend with Cloud Functions
    • Integrate with Google Cloud
    • FAQs about pricing plan changes
  • Security Rules
    • Introduction
    • Get started
    • Understand Security Rules
      • Security Rules language
      • How Security Rules work
      • Security Rules and Firebase Authentication
    • Write Security Rules
      • Basic Security Rules
      • Avoid insecure rules
      • Data validation
    • Test Security Rules
      • Set up the emulator
      • Build unit tests
      • Generate test reports
      • Quickly validate Security Rules
    • Manage and deploy Security Rules
  • App Hosting
    • Introduction
    • Discover
    • How App Hosting works
    • The App Hosting build process
    • App Hosting costs
    • Related serverless solutions
    • Get started
    • Deploy a basic app
    • Deploy multiple environments
    • Deploy a monorepo app
    • Other ways to deploy
    • Develop
    • Frameworks and tooling
    • Configure and manage backends
    • Connect a custom domain
    • Integrate Firebase SDKs
    • API Reference
    • Cache app content
    • Monitor, log and debug
    • Manage rollouts and releases
    • Test your app locally
    • Monitor routes
    • Write and view logs
    • FAQ and troubleshooting
    • Cloud Audit Logging
    • Solutions
    • Optimize image loading on Next.js
    • Connect a VPC network
  • Hosting
    • Introduction
    • Explore use cases
    • Get started
    • Test, preview, then deploy
    • Deploy via GitHub pull requests
    • Share project resources across multiple sites
    • Connect a custom domain
    • Configure hosting behavior
    • Configure i18n rewrites
    • Add SDKs using reserved URLs
    • Serve dynamic content and host microservices
      • Overview
      • Use Cloud Functions for Firebase
      • Use Cloud Run
      • Manage cache behavior
    • Integrate web frameworks
      • Overview
      • Integrate Angular
      • Integrate Next.js
      • Integrate Flutter
      • Integrate other frameworks with Express.js
    • Manage live & preview channels, releases, and versions
    • Monitor web request data with Cloud Logging
    • Usage, quotas, and pricing
    • Deploy using the REST API
  • Cloud Functions
    • Introduction
    • 1st and 2nd gen version comparison
    • Explore use cases
    • Get started
    • Upgrade to 2nd gen
    • Call functions directly
      • Call functions from your app
      • Invoke Genkit flows from your app
      • Call functions via HTTP requests
      • Enqueue functions with Cloud Tasks
      • Run functions on a schedule
    • Trigger background functions
      • Firebase Alert triggers
      • Custom event/extension triggers
      • Blocking Auth triggers
      • Cloud Firestore triggers
      • Realtime Database triggers
      • Remote Config triggers
      • Cloud Storage triggers
      • Pub/Sub triggers
      • Test Lab triggers
    • Write functions
      • Manage deployment and runtime options
      • Write functions in TypeScript
      • Sync, async, and promises
      • Retry asynchronous functions
      • Configure your environment
      • Organize functions
      • Handling dependencies
      • Optimizing networking
      • Tips & tricks
    • Test functions
      • Run functions locally
      • Unit testing functions
      • Test functions interactively
    • Monitor functions
      • Write and view logs
      • Report errors
    • API Reference
      • Node.js 2nd gen
      • Node.js 1st gen
      • Node.js Test SDK
      • Python
      • Protocol specification for https.onCall
    • Cloud Run functions and Firebase
    • Cloud Functions locations
    • Quotas and limits
    • Cloud Functions (1st gen)
      • Analytics triggers
      • Authentication triggers
      • Blocking Auth triggers
      • Call functions from your app
      • Call functions via HTTP requests
      • Cloud Firestore triggers
      • Cloud Storage triggers
      • Configure your environment
      • Enqueue functions with Cloud Tasks
      • Get started
      • Manage deployment and runtime options
      • Organize functions
      • Pub/Sub triggers
      • Realtime Database triggers
      • Remote Config triggers
      • Report errors
      • Run functions on a schedule
      • Test Lab triggers
      • Write and view logs
  • Extensions
    • Introduction
    • Use case examples
    • Use an extension in your project
    • Overview
    • Install an extension
    • Manage installed extensions
    • Permissions granted to an extension
    • Manage configurations with manifests
    • Extensions by Firebase
    • Trigger Email
      • Get started
      • Use Handlebars templates
      • Manage delivery status
    • Delete User Data
      • Get Started
    • Firestore Bundle Builder
      • Get Started
      • Reference
    • Resize Images
    • Export Collections to BigQuery
    • Translate Text
    • Distributed Counter
    • Shorten URLs
    • Limit Child Nodes
    • Build & publish extensions
    • Overview
    • Get started
    • Write functions
    • Set up parameters
    • Handle lifecycle events
    • Add user hooks
    • Set up appropriate access
    • Create user documentation
    • Register as a publisher
    • Publish an extension
    • Reference for extension.yaml
    • Firebase Extensions Publisher Agreement
  • Firebase ML
    • Introduction
    • Codelabs
    • Custom Models
    • Use a custom model
      • Overview
      • iOS+
      • Android
      • Flutter
    • Deploy & manage custom models
    • Migrate from the legacy API
      • iOS+
      • Android
    • Use Cloud Vision APIs
    • Recognize text
      • Overview
      • iOS+
      • Android
    • Label images
      • Overview
      • iOS+
      • Android
    • Recognize landmarks
      • Overview
      • iOS+
      • Android
    • Advanced Topics
    • A/B test two versions of a model
      • iOS+
      • Android
    • Prepare for Production
    • Protect your Cloud credentials
      • iOS+
      • Android
    • (Deprecated) Cloud Vision & Cloud AutoML Vision Edge
    • Deprecated Vision SDKs
      • Recognize text
        • iOS+
        • Android
      • Label images
        • iOS+
        • Android
      • Recognize landmarks
        • iOS+
        • Android
    • Deprecated Cloud AutoML Vision Edge
      • Overview
      • Train image labeling models
      • Label images with your models
        • iOS+
        • Android
      • Train object detection models
      • Detect objects with your models
        • iOS+
        • Android
      • Migrate datasets
    • Legacy Documentation
    • ML Kit for Firebase
      • Introduction
      • Vision
      • Recognize text
        • Overview
        • iOS
        • Android
      • Detect faces
        • Overview
        • Concepts
        • iOS
        • Android
      • Scan barcodes
        • Overview
        • iOS
        • Android
      • Label images
        • Overview
        • iOS
        • Android
      • Detect and track objects
        • Overview
        • iOS
        • Android
      • Recognize landmarks
        • Overview
        • iOS
        • Android
      • AutoML Vision Edge
      • Overview
      • Train image labeling models
      • Label images with your models
        • iOS
        • Android
      • Migrate datasets
      • Natural Language
      • Identify the language of text
        • Overview
        • iOS
        • Android
      • Translate text
        • Overview
        • iOS
        • Android
        • Usage guidelines
      • Generate smart replies
        • Overview
        • iOS
        • Android
      • Custom Models
      • Use a custom model
        • Overview
        • iOS
        • Android
      • Manage hosted custom models
      • Use a custom TensorFlow Lite build
        • iOS
        • Android
      • Advanced Topics
      • A/B test two versions of a model
        • iOS
        • Android
      • Prepare for Production
      • Reduce app package size
        • Android
      • Protect your Cloud credentials
        • iOS
        • Android
  • RELATED PRODUCTS
  • Cloud Messaging
  • Remote Config
  • Build
  • Go to Build
  • Build Products
  • App Check
  • App Hosting
  • Authentication
  • Cloud Functions
  • Cloud Storage
  • Data Connect
  • Extensions
  • Firebase ML
  • Firestore
  • Genkit
  • Hosting
  • Realtime Database
  • Firebase AI Logic client SDKs
  • Generative AI
  • Run
  • Go to Run
  • Run Products
  • A/B Testing
  • App Distribution
  • Cloud Messaging
  • Crashlytics
  • Google Analytics