Catch up on highlights from Firebase at Google I/O 2023. Learn more

Usage and limits

Use this guide to understand Cloud Firestore limits, and see Cloud Firestore Pricing for a full, detailed explanation of Cloud Firestore costs, including things to watch out for.

Monitor your usage

To monitor your Cloud Firestore usage, open the Cloud Firestore Usage tab in the Firebase console. Use the dashboard to gauge your usage over different time periods.

Detailed usage in the Google Cloud Console

When you create a Firebase project, you're also creating a Google Cloud project. The Cloud Firestore API Quotas and App Engine Quotas pages in the Google Cloud Console track Cloud Firestore usage and quota information.

Free quota

Cloud Firestore offers free quota that allows you to get started at no cost. The free quota amounts are listed below. If you need more quota, you must enable billing for your Cloud Platform project.

Quotas are applied daily and reset around midnight Pacific time.

Free tier Quota
Stored data 1 GiB
Document reads 50,000 per day
Document writes 20,000 per day
Document deletes 20,000 per day
Network egress 10 GiB per month

Standard limits

The following tables show the limits that apply to Cloud Firestore. These are hard limits unless otherwise noted.

Collections, documents, and fields

Limit Details
Constraints on collection IDs
  • Must be valid UTF-8 characters
  • Must be no longer than 1,500 bytes
  • Cannot contain a forward slash (/)
  • Cannot solely consist of a single period (.) or double periods (..)
  • Cannot match the regular expression __.*__
Maximum depth of subcollections 100
Constraints on document IDs
  • Must be valid UTF-8 characters
  • Must be no longer than 1,500 bytes
  • Cannot contain a forward slash (/)
  • Cannot solely consist of a single period (.) or double periods (..)
  • Cannot match the regular expression __.*__
  • If you import Datastore entities into a Firestore database, numeric entity IDs are exposed as __id[0-9]+__
Maximum size for a document name 6 KiB
Maximum size for a document 1 MiB (1,048,576 bytes)
Constraints on field names Must be valid UTF-8 characters
Maximum size of a field name 1,500 bytes
Constraints on field paths
  • Must separate field names with a single period (.)
  • May be passed as a string when all field names in the path are simple, otherwise must be passed as a FieldPath object (e.g. JavaScript FieldPath)
A simple field name is one where all of the following are true:
  • Contains only the characters a-z, A-Z, 0-9, and underscore (_)
  • Does not start with 0-9
Maximum size of a field path 1,500 bytes
Maximum size of a field value 1 MiB - 89 bytes (1,048,487 bytes)
Maximum depth of fields in a map or array 20

Writes and transactions

In addition to these limits, you should also see the best practices for designing for scale.

Limit Details
Maximum API request size 10 MiB
Maximum number of field transformations that can be performed on a single document in a Commit operation or in a transaction 500
Time limit for a transaction 270 seconds, with a 60-second idle expiration time

Soft limits

Cloud Firestore does not stop you from exceeding the thresholds below, but doing so affects performance.

Soft limit Details
Maximum write rate to a collection in which documents contain sequential values in an indexed field 500 per second

Indexes

The following limits apply to single-field indexes and composite indexes:

Limit Details
Maximum number of composite indexes for a database

200

You can contact support to request an increase to this limit.

Maximum number of single-field configurations for a database

200

A total of 200 field level configurations are allowed. One field configuration can contain multiple configurations for the same field. For example, a single-field indexing exemption and a TTL policy on the same field count as one field configuration towards the limit.

Maximum number of index entries for each document

40,000

The number of index entries is the sum of the following for a document:

  • The number of single-field index entries
  • The number of composite index entries

To see how Cloud Firestore turns a document and a set of indexes into index entries, see this index entry count example.

Maximum number of fields in a composite index 100
Maximum size of an index entry

7.5 KiB

To see how Cloud Firestore calculates index entry size, see index entry size.

Maximum sum of the sizes of a document's index entries

8 MiB

The total size is the sum of the following for a document:

  • The sum of the size of a document's single-field index entries
  • The sum of the size of a document's composite index entries
  • Maximum size of an indexed field value

    1500 bytes

    Field values over 1500 bytes are truncated. Queries involving truncated field values may return inconsistent results.

    Time-to-live (TTL)

    Limit Details
    Maximum number of single-field configurations for a database

    200

    A total of 200 field level configurations are allowed. One field configuration can contain multiple configurations for the same field. For example, a single-field indexing exemption and a TTL policy on the same field count as one field configuration towards the limit.

    Export/Import

    The following limits apply to managed import and export operations:

    Limit Details
    Maximum total number of both export and import requests for a project allowed per minute 20
    Maximum number of concurrent exports and imports 50
    Maximum number of collection ID filters for export and import requests 100

    Security rules

    Limit Details
    Maximum number of exists(), get(), and getAfter() calls per request
    • 10 for single-document requests and query requests.
    • 20 for multi-document reads, transactions, and batched writes. The previous limit of 10 also applies to each operation.

      For example, imagine you create a batched write request with 3 write operations and that your security rules use 2 document access calls to validate each write. In this case, each write uses 2 of its 10 access calls and the batched write request uses 6 of its 20 access calls.

    Exceeding either limit results in a permission denied error.

    Some document access calls may be cached, and cached calls do not count towards the limits.

    Maximum nested match statement depth 10
    Maximum path length, in path segments, allowed within a set of nested match statements 100
    Maximum number of path capture variables allowed within a set of nested match statements 20
    Maximum function call depth 20
    Maximum number of function arguments 7
    Maximum number of let variable bindings per function 10
    Maximum number of recursive or cyclical function calls 0 (not permitted)
    Maximum number of expressions evaluated per request 1,000
    Maximum size of a ruleset Rulesets must obey two size limits:
    • a 256 KB limit on the size of the ruleset text source published from the Firebase console or from the CLI using firebase deploy.
    • a 250 KB limit on the size of the compiled ruleset that results when Firebase processes the source and makes it active on the back-end.

    Manage spending

    To help avoid unexpected charges on your bill, set monthly budgets and alerts.

    Set a monthly budget

    To track your Cloud Firestore costs, create a monthly budget in the Google Cloud Console. Budgets won't limit your usage, but you can set alerts to notify you when you're approaching or exceeding your planned costs for the month.

    To set a budget, go to the Billing section in the Google Cloud Console and create a budget for your Cloud Billing account. You can use the default alert settings or modify the alerts to send notifications at different percentages of your monthly budget.

    Learn more about setting up budgets and budget alerts.

    Set a daily spending limit

    To cap your Cloud Firestore usage, set a daily spending limit through App Engine. App Engine allows you to set a daily spending limit on App Engine associated resources, including Cloud Firestore. The App Engine limit does not apply to any other Firebase products.