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 quote superiori, 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 dati in uscita 10 GiB al mese

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

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

Per ulteriori informazioni sulla 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 non sono idonei per la quota gratuita. Ti verranno invece addebitati i costi di utilizzo dei database denominati.

Operazioni di lettura, scrittura ed eliminazione

Ti viene addebitata la lettura di documenti e voci di indice per soddisfare una query. Ti viene addebitata ogni operazione di scrittura ed eliminazione dei 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 hanno alcune sfumature di cui devi tenere conto. Tali sottigliezze vengono spiegate in dettaglio nelle sezioni che seguono.

Letture di 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ù prossimo con K, viene addebitata un'operazione di lettura per ogni batch di massimo 100 voci di indice vettoriale 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'
    });
    
  • Alle query che hanno fino a un campo di intervallo non viene addebitata la lettura delle voci di indice.

    Ad esempio, la seguente query contiene un campo di uguaglianza (age) e un campo di intervallo (start_date) e non vengono addebitati costi 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 nell'ordine per clausola è considerato un campo di intervallo quando 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. Di conseguenza, 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 dell'indice, è previsto un addebito minimo pari alla lettura di un documento.

Ad esempio, le operazioni count() che leggono da 0 a 1000 voci di indice vengono fatturate per la lettura di un documento. Per un'operazione count() che legge 1500 voci di indice, ti vengono fatturate 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 web e per dispositivi mobili dipende anche dall'attivazione o meno della persistenza offline:

  • Se la persistenza offline è abilitata e il listener è 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 eseguito 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 di archiviazione del 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 di archiviazione 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 campione per calcolare le dimensioni 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. Per la maggior parte dei clienti, il costo complessivo dell'archiviazione dei dati PiTR è simile a quello del database.

I costi di archiviazione per 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 le dimensioni dell'archiviazione del database. Questo valore medio viene moltiplicato per il prezzo unitario del PITR (GiB al mese).

Ad esempio, se la dimensione media del database durante un mese è 1 GiB e il PITR è abilitato per l'intero mese, la dimensione dei dati PITR fatturabili sarà anch'essa di 1 GiB.

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

Operazioni di backup e ripristino dei dati

Se abiliti i backup, ti viene addebitato il costo di archiviazione dei backup dei database. La dimensione dello spazio di archiviazione per un backup corrisponde a quella del database al momento dell'esecuzione del backup.

I costi di archiviazione per i backup sono in GiB/mese. Nel corso di un mese, viene anche calcolato il numero di giorni durante i quali viene conservato ogni backup, calcolato in media nel mese. Il costo di ogni backup viene calcolato utilizzando le dimensioni dello spazio di archiviazione del backup moltiplicato per la proporzione del mese di conservazione del backup, moltiplicato 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 viene 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 vengono eseguite operazioni 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 le operazioni di indicizzazione e lettura, quindi ti viene addebitato il costo della query come di consueto. Non è previsto alcun costo aggiuntivo per l'attività di spiegazione e analisi, ma solo il consueto addebito per la query in esecuzione.

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 multiregione 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 le regioni degli Stati Uniti Tariffe di trasferimento dei dati internet in uscita da 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 dei dati internet

Ti verranno addebitati i seguenti costi per il trasferimento di dati internet:

  • 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

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