Firestore in Datastore mode offers free quota that allows you to get started at no cost. The resources and free quota amounts are listed below. If you need more quota, you must enable billing and set a spending limit for your project.
Quotas are applied daily and reset around midnight Pacific time.
Small operations include:
- Calls to allocate IDs.
- Keys-only queries. A keys-only query is counted as a single entity read for the query itself. The individual results are counted as small operations.
- Projection queries that do not use the
distinct onclause. This type of query is counted as a single entity read for the query itself. The individual results are counted as small operations.
Small operations are free, but you must enable billing to exceed the free quota per day.
Backup and restore operations are charged for entity reads and writes at the rates shown in the table above. These operations are executed within your application, and thus count against your quota. The backup and restore process also creates Compute Engine instances. You are charged for the instance hours used during the backup or restore.
Export and import operations are charged for entity reads and writes at the rates shown in the table above. If you cancel an export or import, you will be charged for operations performed up until the time that the cancel request has propagated through Firestore in Datastore mode.
Locating quota usage information for your app
To see your application's Datastore mode usage, including quota consumption, visit the App Engine Quota Details page. You'll need to do this even if your application does not run in App Engine.
The Datastore mode resources used by your application are listed in the Storage page that is displayed. You can optionally click Show resources not in use to take a look at the complete list of quota information that is available.
Storage size consideration
It's important to note that data stored in Firestore in Datastore mode may incur significant storage overhead. This overhead depends on the number and types of associated properties, and includes space used by built-in indexes and composite indexes. Each entity stored in your database requires the following metadata:
- The entity key, including the kind, the ID or key name, and the keys of the entity's ancestors.
- The name and value of each property. Since Firestore in Datastore mode is schemaless, the name of each property must be stored with the property value for any given entity.
- Any built-in and composite index rows that refer to this entity. Each row contains the entity kind, any number of property values depending on the index definition, and the entity key.
Learn how Datastore mode storage is calculated at Storage Size Calculations.
See How Entities and Indexes are Stored for a complete breakdown of the metadata required to store entities and indexes at the Bigtable level and Datastore Indexes for a detailed explanation of how Datastore mode indexes are managed.