Utilizzo e limiti

Consulta questa guida per conoscere i limiti di Cloud Firestore e leggi la sezione Prezzi di Cloud Firestore per una spiegazione completa e dettagliata dei costi di Cloud Firestore, inclusi gli aspetti da tenere presente.

Monitorare l'utilizzo

Per monitorare l'utilizzo di Cloud Firestore, apri la scheda Utilizzo Cloud Firestore nella console Firebase. Utilizza la dashboard per misurare il tuo utilizzo in periodi di tempo diversi.

Utilizzo dettagliato nella console Google Cloud

Quando crei un progetto Firebase, viene creato anche un progetto Google Cloud. Le pagine Quote API Cloud Firestore e Quote di App Engine nella console Google Cloud tengono traccia delle informazioni sull'utilizzo e sulle quote di Cloud Firestore.

Quota gratuita

Cloud Firestore offre una quota gratuita che ti consente di iniziare a utilizzare il tuo database (default) senza costi. Di seguito viene riportata la quantità di quote gratuite. Se hai bisogno di un aumento della quota, devi abilitare la fatturazione per il tuo progetto Google Cloud.

Le quote sono applicate giornalmente e reimpostate alla mezzanotte del fuso orario del Pacifico.

Solo il database (default) è idoneo per la quota senza costi.

Livello gratuito Quota
Dati archiviati 1 GiB
Operazioni di lettura documenti 50.000 al giorno
Operazioni di scrittura documenti 20.000 al giorno
Operazioni di eliminazione documenti 20.000 al giorno
Trasferimento di dati in uscita 10 GiB al mese

Le seguenti operazioni e funzionalità non includono l'utilizzo senza costi. Per utilizzare queste funzionalità, devi attivare la fatturazione:

  • Utilizzo di database denominati (non predefiniti)
  • Eliminazioni TTL
  • Dati PITR
  • Esegui il backup dei dati
  • Operazioni di ripristino

Per ulteriori informazioni sulla fatturazione di queste funzionalità, consulta Prezzi dello spazio di archiviazione.

Limiti standard

Le seguenti tabelle mostrano i limiti che si applicano a Cloud Firestore. Si tratta di limiti rigidi, se non diversamente specificato.

Database

Limite Dettagli
Numero massimo di database per progetto

100

Puoi contattare l'assistenza per richiedere un aumento di questo limite.

Raccolte, documenti e campi

Limite Dettagli
Vincoli degli ID raccolta
  • Devono contenere esclusivamente caratteri UTF-8 validi
  • Non devono superare i 1500 byte
  • Non possono contenere una barra (/)
  • Non possono essere composti unicamente da un singolo punto (.) o da due punti consecutivi (..)
  • Non possono corrispondere all'espressione regolare __.*__
Profondità massima delle sottoraccolte 100
Vincoli degli ID documento
  • Devono contenere esclusivamente caratteri UTF-8 validi
  • Non devono superare i 1500 byte
  • Non possono contenere una barra (/)
  • Non possono essere composti unicamente da un singolo punto (.) o da due punti consecutivi (..)
  • Non possono corrispondere all'espressione regolare __.*__
  • Se importi entità Datastore in un database Firestore, gli ID entità numerici vengono esposti come __id[0-9]+__
Dimensione massima del nome di un documento 6 KiB
Dimensione massima di un documento 1 MiB (1.048.576 byte)
Vincoli dei nomi dei campi
  • Devono contenere esclusivamente caratteri UTF-8 validi
  • Non possono corrispondere all'espressione regolare __.*__
Dimensione massima del nome di un campo 1500 byte
Vincoli dei percorsi dei campi
  • È necessario separare i nomi dei campi con un singolo punto (.)
  • Può essere passato come stringa di segmenti delimitati da punti (.) in cui ogni segmento è un nome di campo semplice o un nome di campo tra virgolette (definito di seguito).
Un nome di campo semplice è un nome in cui tutte le seguenti condizioni sono vere:
  • Contiene solo i caratteri a-z, A-Z o 0-9 e il trattino basso (_)
  • Non inizia con 0-9
Un nome di campo tra virgolette inizia e termina con il carattere barra verticale (`). Ad esempio, foo.`x&y` fa riferimento al campo x&y nidificato nel campo foo. Per creare un nome di campo con l'accento grave, esegui la fuga del carattere con la barra (\). Per comodità, puoi evitare i nomi di campo tra virgolette passando il percorso del campo come oggetto FieldPath (ad esempio, consulta FieldPath JavaScript).
Dimensione massima di un percorso di campo 1500 byte
Dimensione massima di un valore di campo 1 MiB-89 byte (1.048.487 byte)
Profondità massima dei campi in una mappa o un array

20

I campi mappa e array aggiungono un livello alla profondità complessiva di un oggetto. Ad esempio, il seguente oggetto ha una profondità totale di tre livelli:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Operazioni di scrittura e transazioni

Oltre a questi limiti, devi consultare anche le best practice per la progettazione per la scalabilità.

Limite Dettagli
Dimensione massima della richiesta API 10 MiB
Limite di tempo per una transazione 270 secondi, con un periodo di scadenza di inattività di 60 secondi
Numero massimo di trasformazioni di campo che possono essere eseguite su un singolo documento in un'operazione Commit o in una transazione 500

Indici

I seguenti limiti sono applicabili agli indici a campo singolo e agli indici composti:

Limite Dettagli
Numero massimo di indici composti per un database
Numero massimo di configurazioni a campo singolo per un database

Una configurazione a livello di campo può contenere più configurazioni per lo stesso campo. Ad esempio, un'esenzione per l'indicizzazione a campo singolo e un criterio TTL nello stesso campo vengono conteggiati come una configurazione di campo ai fini del limite.

Numero massimo di voci di indice per ogni documento

40.000

Il numero di voci di indice corrisponde alla somma di quanto segue per un documento:

  • Numero di voci degli indici a campo singolo
  • Numero di voci degli indici composti

Per scoprire in che modo Cloud Firestore trasforma un documento e un insieme di indici in voci di indice, vedi questo esempio di conteggio di voci di indice.

Numero massimo di campi in un indice composto 100
Dimensione massima di una voce di indice

7,5 KiB

Per scoprire in che modo Cloud Firestore calcola la dimensione di una voce di indice, vai alla pagina Dimensioni delle voci di indice.

Somma massima delle dimensioni delle voci di indice di un documento

8 MiB

La dimensione totale corrisponde alla somma di quanto segue per un documento:

  • Somma delle dimensioni delle voci degli indici a campo singolo di un documento
  • Somma delle dimensioni delle voci degli indici composti di un documento
  • Dimensione massima di un valore di campo indicizzato

    1500 byte

    I valori di campo superiori a 1500 byte vengono troncati. Le query che includono valori di campo troncati possono restituire risultati incoerenti.

    Durata (TTL)

    Limite Dettagli
    Numero massimo di configurazioni a campo singolo per un database

    Una configurazione a livello di campo può contenere più configurazioni per lo stesso campo. Ad esempio, un'esenzione per l'indicizzazione a campo singolo e un criterio TTL nello stesso campo vengono conteggiati come una configurazione di campo ai fini del limite.

    Esportazione/importazione

    Per le operazioni di importazione ed esportazione gestite si applicano i limiti seguenti:

    Limite Dettagli
    Numero massimo totale di richieste di esportazione e importazione consentite al minuto per un progetto 20
    Numero massimo di esportazioni e importazioni simultanee 50
    Numero massimo di filtri ID raccolta per richieste di esportazione e importazione 100

    Regole di sicurezza

    Limite Dettagli
    Numero massimo di chiamate exists(), get() e getAfter() per richiesta
    • 10 per richieste di documenti singoli e di query.
    • 20 per transazioni, operazioni di scrittura in batch e operazioni di lettura di più documenti. A ciascuna operazione si applica anche il limite precedente di 10.

      Ad esempio, immagina di creare una richiesta di scrittura in batch con 3 operazioni di scrittura e che le tue regole di sicurezza utilizzino 2 chiamate di accesso ai documenti per convalidare ogni operazione di scrittura. In questo caso, ogni operazione di scrittura utilizza 2 delle sue 10 chiamate di accesso e la richiesta di scrittura in batch utilizza 6 delle sue 20 chiamate di accesso.

    Il superamento di uno dei limiti comporta un errore di autorizzazione negata.

    Alcune chiamate di accesso ai documenti possono essere memorizzate nella cache e le chiamate nella cache non vengono considerate ai fini dei limiti.

    Profondità massima delle istruzioni match nidificate 10
    Lunghezza massima del percorso, in segmenti di percorso, consentita all'interno di un set di istruzioni match nidificate 100
    Numero massimo di variabili di acquisizione percorso consentite all'interno di un set di istruzioni match nidificate 20
    Profondità massima delle chiamate funzione 20
    Numero massimo di argomenti di funzione 7
    Numero massimo di associazioni di variabili let per funzione 10
    Numero massimo di chiamate di funzione ricorsive o cicliche 0 (non consentite)
    Numero massimo di espressioni valutate per richiesta 1000
    Dimensione massima di un set di regole I set di regole devono rispettare due limiti di dimensione:
    • Un limite di 256 kB per la dimensione dell'origine di testo del set di regole pubblicata dalla console Firebase o dall'interfaccia a riga di comando utilizzando firebase deploy.
    • Un limite di 250 kB per la dimensione del set di regole compilato che risulta quando Firebase elabora l'origine e la rende attiva sul back-end.

    Gestire le spese

    Per evitare addebiti imprevisti in fattura, imposta budget mensili e avvisi.

    Impostare un budget mensile

    Per monitorare i costi di Cloud Firestore, crea un budget mensile nella console Google Cloud. I budget non limiteranno l'utilizzo, ma puoi impostare avvisi per ricevere una notifica quando ti stai avvicinando o superindo i costi pianificati per il mese.

    Per impostare un budget, vai alla sezione Fatturazione nella console Google Cloud e crea un budget per il tuo account Cloud Billing. Puoi utilizzare le impostazioni di avviso predefinite o modificare gli avvisi per inviare notifiche a percentuali diverse del budget mensile.

    Scopri di più sulla configurazione di budget e avvisi relativi al budget.