Utilizzo e limiti

Utilizza questa guida per comprendere i limiti di Cloud Firestore e consulta i prezzi di Cloud Firestore per una spiegazione completa e dettagliata dei costi di Cloud Firestore, inclusi gli aspetti a cui prestare attenzione.

Monitora il tuo utilizzo

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

Utilizzo dettagliato nella console Google Cloud

Quando crei un progetto Firebase, crei anche un progetto Google Cloud. Le pagine Quote API Cloud Firestore e Quote 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 alcun costo. Gli importi delle quote gratuite sono elencati di seguito. Se hai bisogno di una quota maggiore, devi abilitare la fatturazione per il tuo progetto Google Cloud .

Le quote vengono applicate quotidianamente e ripristinate intorno alla mezzanotte, ora del Pacifico.

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

Livello gratuito Quota
Dati memorizzati 1 GiB
Il documento si legge 50.000 al giorno
Il documento scrive 20.000 al giorno
Il documento viene eliminato 20.000 al giorno
Trasferimento dati in uscita 10 GiB al mese

Le seguenti operazioni e funzionalità non includono l'utilizzo gratuito. È necessario abilitare la fatturazione per utilizzare queste funzionalità:

  • Utilizzo di database denominati (non predefiniti).
  • TTL elimina
  • Dati PITR
  • Dati di backup
  • Operazioni di ripristino

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

Limiti standard

Le tabelle seguenti mostrano i limiti applicabili a Cloud Firestore. Questi sono limiti rigidi se non diversamente specificato.

Banche dati

Limite Dettagli
Numero massimo di database per progetto

100

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

Collezioni, documenti e campi

Limite Dettagli
Vincoli sugli ID di raccolta
  • Devono essere caratteri UTF-8 validi
  • Non deve essere più lungo di 1.500 byte
  • Non può contenere una barra ( / )
  • Non può essere costituito esclusivamente da un punto singolo ( . ) o da punti doppi ( .. )
  • Impossibile corrispondere all'espressione regolare __.*__
Profondità massima delle sottoraccolte 100
Vincoli sugli ID dei documenti
  • Devono essere caratteri UTF-8 validi
  • Non deve essere più lungo di 1.500 byte
  • Non può contenere una barra ( / )
  • Non può essere costituito esclusivamente da un punto singolo ( . ) o da punti doppi ( .. )
  • Impossibile corrispondere all'espressione regolare __.*__
  • Se importi entità Datastore in un database Firestore, gli ID entità numerici vengono esposti come __id[0-9]+__
Dimensione massima per un nome di documento 6 KiB
Dimensione massima per un documento 1 MiB (1.048.576 byte)
Vincoli sui nomi dei campi Devono essere caratteri UTF-8 validi
Dimensione massima di un nome di campo 1.500 byte
Vincoli sui percorsi di campo
  • È necessario separare i nomi dei campi con un singolo punto ( . )
  • Può essere passato come una stringa di segmenti delimitati da punti ( . ) in cui ciascun segmento è un nome di campo semplice o un nome di campo tra virgolette (definito di seguito).
Un nome di campo semplice è quello in cui sono vere tutte le seguenti condizioni:
  • Contiene solo i caratteri az , AZ , 0-9 e il carattere di sottolineatura ( _ )
  • Non inizia con 0-9
Un nome di campo tra virgolette inizia e termina con il carattere backtick ( ` ). Ad esempio, foo.`x&y` si riferisce al campo x&y annidato sotto il campo foo . Per costruire un nome di campo con il carattere di apice inverso, eseguire l'escape del carattere di apice inverso con il carattere barra rovesciata ( \ ). Per comodità, puoi evitare i nomi dei campi tra virgolette passando il percorso del campo come oggetto FieldPath ( ad esempio, vedi JavaScript FieldPath ).
Dimensione massima di un percorso di campo 1.500 byte
Dimensione massima di un valore di campo 1 MiB - 89 byte (1.048.487 byte)
Profondità massima dei campi in una mappa o in un array 20

Scritture e transazioni

Oltre a questi limiti, dovresti consultare anche le best practice per la progettazione su larga scala .

Limite Dettagli
Dimensione massima della richiesta API 10 MB
Limite temporale per una transazione 270 secondi, con un tempo di scadenza di inattività di 60 secondi

Indici

I seguenti limiti si applicano agli indici a campo singolo e agli indici compositi :

Limite Dettagli
Numero massimo di indici compositi 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 dall'indicizzazione di un campo singolo e una policy TTL sullo stesso campo contano come una configurazione di campo ai fini del limite.

Numero massimo di voci di indice per ciascun documento

40.000

Il numero di voci dell'indice è la somma dei seguenti valori per un documento:

  • Il numero di voci di indice a campo singolo
  • Il numero di voci dell'indice composito

Per vedere come Cloud Firestore trasforma un documento e un set di indici in voci di indice, consulta questo esempio di conteggio delle voci di indice .

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

7,5 KiB

Per vedere come Cloud Firestore calcola la dimensione della voce di indice, consulta dimensione della voce di indice .

Somma massima delle dimensioni delle voci di indice di un documento

8 MB

La dimensione totale è la somma dei seguenti valori per un documento:

  • La somma delle dimensioni delle voci di indice a campo singolo di un documento
  • La somma delle dimensioni delle voci dell'indice composito di un documento
  • Dimensione massima di un valore di campo indicizzato

    1500 byte

    I valori dei campi superiori a 1500 byte vengono troncati. Le query che coinvolgono valori di campo troncati potrebbero restituire risultati incoerenti.

    Tempo di vita (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 dall'indicizzazione di un campo singolo e una policy TTL sullo stesso campo contano come una configurazione di campo ai fini del limite.

    Esportazione importazione

    I seguenti limiti si applicano alle operazioni di importazione ed esportazione gestite :

    Limite Dettagli
    Numero totale massimo di richieste di esportazione e importazione consentite per un progetto al minuto 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 documento singolo e richieste di interrogazione.
    • 20 per letture di più documenti, transazioni e scritture in batch. Per ogni operazione vale anche il precedente limite di 10.

      Ad esempio, immagina di creare una richiesta di scrittura in batch con 3 operazioni di scrittura e che le regole di sicurezza utilizzino 2 chiamate di accesso ai documenti per convalidare ciascuna scrittura. In questo caso, ciascuna 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 genera un errore di autorizzazione negata.

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

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

    Gestire la spesa

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

    Imposta un budget mensile

    Per monitorare i costi di Cloud Firestore, crea un budget mensile nella console Google Cloud. I budget non limiteranno il tuo utilizzo, ma puoi impostare avvisi per avvisarti quando ti avvicini o superi 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 di fatturazione Cloud. Puoi utilizzare le impostazioni di avviso predefinite o modificare gli avvisi per inviare notifiche a percentuali diverse del budget mensile.

    Ulteriori informazioni sull'impostazione dei budget e sugli avvisi di budget .