Quotas and limits
This page identifies the request quotas and limits for Firestore.
Free quota
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 Firestore. These are hard limits unless otherwise noted.
Collections, documents, and fields
Limit | Details |
---|---|
Constraints on collection IDs |
|
Maximum depth of subcollections | 100 |
Constraints on document IDs |
|
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 |
|
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
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:
To see how 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 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: |
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 |
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:
|
Monitoring usage
You can view your Firestore usage in the Cloud Firestore API Quotas and the App Engine Quotas pages.