Prezzi di Firestore

Questo documento spiega i dettagli sui prezzi di Firestore.

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Panoramica dei prezzi

Quando utilizzi Firestore, ti viene addebitato quanto segue:

  • Il numero di documenti che leggi, scrivi ed elimini.
  • Il numero di voci di indice lette per soddisfare una query. Scopri di più sulle letture degli indici.
  • Lo spazio di archiviazione utilizzato dal tuo database, incluso l'overhead per metadati e indici.
  • La quantità di larghezza di banda di rete utilizzata.

L'utilizzo dello spazio di archiviazione e della larghezza di banda è misurato in gigabyte (GiB), dove 1 GiB = 230 byte. Tutti gli addebiti vengono sommati ogni giorno.

Le sezioni che seguono forniscono dettagli sul modo in cui viene addebitato l'utilizzo di Firestore.

Quota gratuita

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 gratuita.

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 dei dati in uscita 10 GiB al mese

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

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

Per ulteriori informazioni sulle modalità di fatturazione di queste funzionalità, consulta Prezzi dell'archiviazione.

Prezzi per località

La tabella riportata di seguito elenca i prezzi per letture, scritture, eliminazioni e spazio di archiviazione per ciascuna località Firestore:

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Nessuna quota gratuita per i database denominati

Per creare un database denominato (non predefinito), devi abilitare la fatturazione.

Non sono previsti costi aggiuntivi per la creazione o l'eliminazione dei database denominati, ma questi database non sono idonei per la quota gratuita. Ti verrà invece addebitato l'utilizzo sostenuto per i database denominati.

Operazioni di lettura, scrittura ed eliminazione

Ti vengono addebitati i documenti e le voci di indice letti per soddisfare una query. Ti viene addebitata ogni operazione di scrittura ed eliminazione di documenti che esegui.

Gli addebiti per le operazioni di scrittura ed eliminazione sono semplici. Per la scrittura, ogni operazione set o update conta come un'unica scrittura.

Gli addebiti per le operazioni di lettura presentano alcune sfumature che dovresti tenere a mente. Tali sottigliezze vengono spiegate in dettaglio nelle sezioni che seguono.

Letture delle voci di indice

Ti viene addebitata un'operazione di lettura per ogni batch di massimo 1000 voci di indice lette da una query, ad eccezione di quanto segue:

  • Per le query di ricerca del vettore del vicino più vicino K, ti viene addebitata un'operazione di lettura per ogni batch di voci di indice vettoriali fino a 100 kNN lette dalla query.

    Ad esempio, se la seguente query di ricerca vettoriale con limit: 5 restituisce 5 documenti e legge 1550 voci di indice vettoriale kNN, ti vengono addebitate 5 operazioni di lettura per i documenti restituiti e 16 operazioni di lettura per le voci di indice:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • Le query che hanno fino a un campo Intervallo non vengono addebitate per la lettura delle voci di indice.

    Ad esempio, la seguente query contiene un campo di uguaglianza (age) e un campo intervallo (start_date) e non ti viene addebitato alcun costo per le voci di indice lette:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    La seguente query contiene due campi di intervallo (age e start_date) e ti vengono addebitate le letture delle voci di indice:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Un campo visualizzato nella clausola Ordina per è considerato campo intervallo se nella query è presente almeno un altro campo Intervallo. Di conseguenza, la seguente query contiene due campi di intervallo (age e start_date) e ti vengono addebitate le letture delle voci di indice:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    Il campo __name__ è sempre considerato un campo di intervallo, anche se viene utilizzato solo in un filtro di uguaglianza. Pertanto, la seguente query contiene due campi di intervallo (age e __name__) e ti vengono addebitate le letture delle voci di indice:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

Query di aggregazione

Per le query di aggregazione, come count(), sum() e avg(), ti vengono addebitate le voci di indice lette dalla query come descritto sopra. Per le query di aggregazione che leggono 0 voci di indice, è previsto un addebito minimo di una lettura di documenti.

Ad esempio, per le operazioni count() che leggono tra 0 e 1000 voci di indice viene fatturata una lettura di documenti. Per un'operazione count() che legge 1500 voci di indice, ti vengono addebitate 2 letture di documenti.

Per scoprire di più sugli indici utilizzati e sulle voci di indice lette, utilizza Query Explain.

Ascolto dei risultati delle query

Firestore ti consente di rimanere in ascolto dei risultati di una query e ricevere aggiornamenti in tempo reale quando i risultati della query cambiano.

Quando esegui l'ascolto dei risultati di una query, ti viene addebitata una lettura ogni volta che viene aggiunto o aggiornato un documento nel set di risultati. Ti viene addebitata una lettura anche quando un documento viene rimosso dal set di risultati perché è stato modificato (invece, quando un documento viene eliminato, non viene addebitata una lettura).

La fatturazione dei listener negli SDK per dispositivi mobili e web dipende anche dall'attivazione o meno della persistenza offline:

  • Se la persistenza offline è abilitata e il listener viene disconnesso per più di 30 minuti (ad esempio, se l'utente passa alla modalità offline), ti verranno addebitati i documenti e le voci di indice letti come se avessi eseguito una nuova query.

  • Se la persistenza offline è disabilitata, ti verranno addebitati i documenti e le voci di indice lette come se avessi inviato una nuova query ogni volta che l'ascoltatore si disconnette e si riconnette.

Gestione di grandi set di risultati

Firestore include numerose funzionalità per la gestione delle query che restituiscono un numero elevato di risultati:

  • Cursori, che consentono di riprendere una query a lunga esecuzione.
  • Token di pagina, che consentono di impaginare i risultati della query.
  • Limiti, che specificano il numero di risultati da recuperare.
  • Offset, che consentono di saltare un numero fisso di documenti.

Non sono previsti costi aggiuntivi per l'uso di cursori, token di pagina e limiti. In effetti, queste funzionalità contribuiscono a conseguire risparmi in termini di costi poiché vengono letti solo i documenti effettivamente necessari.

Invece, quando invii una query che comprende un offset, ti viene addebitata una lettura per ciascun documento saltato. Ad esempio, se la tua query utilizza un offset di 10, e la query restituisce 1 documento, ti vengono addebitate 11 letture. A causa di questo costo aggiuntivo, ove possibile si dovrebbero utilizzare i cursori, anziché gli offset.

Query diverse dalla lettura di documenti

Per le query diverse dalla lettura di documenti, come la richiesta di un elenco di ID raccolta, ti verrà addebitato il costo della lettura di un documento. Se il recupero del set completo di risultati richiede più di una richiesta (ad esempio, se si utilizza l'impaginazione), viene eseguito un unico addebito per ogni richiesta.

Addebito minimo per le query

È previsto un addebito minimo, corrispondente alla lettura di un documento, per ogni query eseguita, anche se la query non restituisce risultati.

Regole di sicurezza di Firestore

Nel caso delle librerie client per applicazioni web o per dispositivi mobili, se le regole di sicurezza di Firestore utilizzano exists(), get() o getAfter() per leggere uno o più documenti del database, le letture aggiuntive vengono addebitate come segue:

  • Vengono addebitate le letture necessarie per valutare le regole di sicurezza di Firestore.

    Ad esempio, se le regole fanno riferimento a tre documenti, ma Firestore deve leggerne solo due per valutare le regole, verranno addebitate due letture aggiuntive per i documenti dipendenti.

    Viene addebitata una sola lettura per ogni documento dipendente, anche se le regole fanno riferimento più volte a quel documento.

  • La valutazione delle regole viene addebitata una sola volta per ogni richiesta.

    Di conseguenza, può costare meno leggere più documenti che leggere i documenti uno alla volta, perché la lettura di più documenti comporta meno richieste.

  • Quando esegui l'ascolto dei risultati di una query, ti viene addebitato il costo della valutazione delle regole in tutti i casi seguenti:

    • Quando invii la query.
    • Ogni volta che i risultati della query vengono aggiornati.
    • Ogni volta che il dispositivo dell'utente passa offline, quindi torna online.
    • Ogni volta che aggiorni le regole.
    • Ogni volta che aggiorni i documenti dipendenti nelle regole.

Dimensione archiviazione database

Ti viene addebitata la quantità di dati archiviati in Firestore, incluso l'overhead di archiviazione. L'overhead comprende metadati, indici automatici e indici composti.

Ogni documento archiviato in Firestore richiede i seguenti metadati:

  • L'ID del documento, compresi l'ID raccolta e il nome del documento.
  • Il nome e il valore di ogni campo. Poiché Firestore è privo di schemi, il nome di ogni campo di un documento deve essere archiviato insieme al valore del campo.
  • Tutti gli indici a campo singolo e composti che fanno riferimento al documento. Ogni voce di indice contiene l'ID raccolta, qualsiasi numero di valori di campo, a seconda della definizione dell'indice, e il nome del documento.

I costi dello spazio di archiviazione sono in GiB/mese e vengono calcolati quotidianamente. Firestore misura la dimensione del database su base giornaliera. Nel periodo di un mese, questi punti di campionamento vengono calcolati in media per calcolare la dimensione dello spazio di archiviazione del database. Questo valore medio viene moltiplicato per il prezzo unitario dello spazio di archiviazione (GiB/mese)

Scopri come viene calcolata la capacità di archiviazione di Firestore in Calcoli dello spazio di archiviazione.

Dati PITR

Se abiliti PITR, ti viene addebitata l'archiviazione dei dati PITR. La maggior parte dei clienti scoprirà che il costo complessivo dell'archiviazione dei dati PiTR è simile a quello del database.

I costi di archiviazione per il PITR sono in GiB/mese e calcolati quotidianamente. Firestore misura le dimensioni del database su base giornaliera. Nel corso di un mese, viene calcolata la media di questi punti di campionamento per calcolare la dimensione di archiviazione del database. Questo valore medio viene moltiplicato per il prezzo unitario del PITR (GiB/mese).

Ad esempio, se la dimensione media del database durante un mese è di 1 GiB e il PITR è abilitato per l'intero mese, anche la dimensione dei dati PITR fatturabile è 1 GiB.

Fatturazione minima: ti potrebbe essere addebitato fino a 1 giorno del costo di archiviazione PITR anche se disabiliti PITR entro un giorno dall'abilitazione.

Operazioni di backup e ripristino dei dati

Se attivi le procedure di backup, ti viene addebitato il costo per l'archiviazione dei backup del database. Le dimensioni dello spazio di archiviazione per un backup corrispondono a quelle del database quando hai eseguito il backup.

I costi di archiviazione per i backup sono in GiB/mese. Nel periodo di un mese viene calcolato anche il numero di giorni per cui viene conservato ogni backup, calcolato in media nel corso del mese. Il costo di ogni backup viene calcolato utilizzando la dimensione dello spazio di archiviazione del backup moltiplicata per la proporzione del mese di conservazione, moltiplicata per il prezzo unitario.

Quando esegui un'operazione di ripristino, Firestore misura le dimensioni del backup per l'operazione di ripristino. La dimensione del backup è moltiplicata per il prezzo unitario delle operazioni di ripristino (GiB).

Spiegazione della query

L'utilizzo di Firestore Query Explain comporta dei costi.

Quando una query viene spiegata con l'opzione predefinita, non viene eseguita alcuna operazione di lettura dell'indice. Indipendentemente dalla complessità della query, viene addebitata un'operazione di lettura.

Quando una query viene spiegata con l'opzione di analisi, vengono eseguite operazioni di indicizzazione e lettura, quindi il costo della query ti viene addebitato come di consueto. Non è previsto un costo aggiuntivo per l'attività di spiegazione e analisi, ma solo il normale addebito per la query eseguita.

Larghezza di banda della rete

Ti viene addebitata la larghezza di banda della rete utilizzata dalle richieste Firestore, come mostrato nelle sezioni seguenti. Il costo della larghezza di banda della rete di una richiesta Firestore dipende dalle dimensioni della risposta alla richiesta, dalla località del database Firestore e dalla destinazione della risposta.

Firestore calcola le dimensioni della risposta in base a un formato di messaggio serializzato. L'overhead del protocollo, come l'overhead SSL, non conta ai fini dell'utilizzo della larghezza di banda della rete. Le richieste rifiutate in base alle regole di sicurezza di Firestore non contano ai fini dell'utilizzo della larghezza di banda della rete.

Per conoscere la larghezza di banda della rete che hai utilizzato, puoi utilizzare la console Google Cloud per esportare i dati di fatturazione su un file.

Prezzi generali di rete

Per le richieste che provengono da Google Cloud Platform (ad esempio, da un'applicazione in esecuzione su Google Compute Engine), ti vengono addebitati i seguenti costi:

Tipo di traffico Prezzo
Trasferimento dati in entrata Gratis
Trasferimento di dati all'interno di una regione Gratis
Trasferimento di dati tra regioni nella stessa località (multiregionale) Gratis
Trasferimento di dati tra regioni negli Stati Uniti (per GiB) 0,01 ($ per i primi 10 GiB di ogni mese non viene addebitato alcun costo)
Trasferimento di dati tra regioni, escluso il traffico tra regioni degli Stati Uniti Velocità di trasferimento dei dati internet in uscita della piattaforma Google Cloud

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Velocità di trasferimento dati internet

Ti verrà addebitato il costo del trasferimento di dati internet per:

  • Richieste Google Cloud tra aree geografiche, escluso il traffico tra aree geografiche negli Stati Uniti
  • Richieste esterne a Google Cloud (ad esempio, dal dispositivo mobile di un utente)

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Monitoraggio dell'utilizzo

Per scoprire come monitorare l'utilizzo di Firestore, consulta Monitoraggio dell'utilizzo.

Gestione della spesa

Per gestire la spesa, imposta budget mensili e avvisi.

Budget e avvisi di Google Cloud

Google Cloud ti consente di impostare un budget mensile per tutti i servizi Google Cloud. Utilizza il budget mensile per monitorare i costi globali di Google Cloud, inclusi i costi della larghezza di banda della rete per Firestore. Dopo aver impostato un budget, puoi impostare gli avvisi in modo da ricevere notifiche via email man mano che i costi si avvicinano al budget.

Segui queste istruzioni per impostare un budget mensile e creare avvisi nella console Google Cloud.

Esempio di prezzi

Per vedere come si accumulano i costi di fatturazione di Firestore in un'applicazione di esempio realistica, guarda l'esempio di fatturazione di Firestore.

Passaggi successivi

Richiedi un preventivo personalizzato

Con i prezzi con pagamento a consumo di Google Cloud, paghi solo per i servizi che utilizzi. Per ricevere un preventivo personalizzato per la tua organizzazione, contatta il nostro team di vendita.
Contatta il team di vendita