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 con il tuo database (default) senza costi aggiuntivi. 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 su come vengono fatturate 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 non sono idonei per la quota gratuita. Dovrai invece addebitato sull'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. Stai addebitato per 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 hanno alcuni 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 letto da una query, ad eccezione di quanto segue:

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

    Ad esempio, se la seguente query di ricerca vettoriale con limit: 5 restituisce 5 documenti e legge voci di indice vettoriale di 1550 kNN, ti vengono addebitate 5 operazioni di lettura per i documenti restituiti e 16 operazioni di lettura operazioni 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 con un massimo di un campo Intervallo non vengono addebitate per le voci di indice lette.

    Ad esempio, la seguente query contiene un campo di uguaglianza (age) e un campo Range (start_date) e 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) ed è addebitato per le voci di indice:

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

    Un campo che appare in ordine per clausola è considerato un campo intervallo quando esiste almeno un altro campo dell'intervallo nella query. Di conseguenza, la seguente query contiene due campi di intervallo (age e start_date) e vengono addebitati i costi delle voci di indice:

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

    Il campo __name__ è sempre considerato un campo di intervallo, anche se è solo in un filtro di uguaglianza. Pertanto, la seguente query contiene due intervalli (age e __name__) e vengono addebitati i costi 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 descritto sopra. Per le query di aggregazione con indice pari a 0 viene applicata una tariffa minima per la lettura di un documento.

Ad esempio, operazioni count() che leggono tra 0 e 1000 voci di indice vengono addebitati i costi per la lettura di un documento. Per un'operazione count() con valore 1500 voci di indice, ti verranno addebitate 2 letture dei documenti.

Per saperne di più sugli indici utilizzati e sulle voci di indice lette, usa 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 dal fatto che La persistenza offline sia abilitata o meno:

  • Se la persistenza offline è abilitata e il listener è disconnesso per più di 30 minuti (ad esempio, se l'utente passa alla modalità offline), addebitato per documenti e voci di indice letti come se avessi emesso un nuovo query.

  • Se la persistenza offline è disabilitata, ti verranno addebitati costi per documenti e lette come se avessi eseguito una query nuova ogni volta che 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. Nell'arco 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 attivi PITR, ti viene addebitato l'importo per l'archiviazione di PITR e i dati di Google Cloud. La maggior parte dei clienti scoprirà che il costo complessivo dell'archiviazione dei dati PiTR è in modo simile al costo dell'archiviazione del database.

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

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

Fatturazione minima: ti può essere addebitato un massimo di 1 giorno del costo dell'archiviazione PITR anche se disattivare PITR entro un giorno dall'abilitazione.

Operazioni di backup e ripristino dei dati

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

I costi di archiviazione per i backup sono in GiB/mese. Nell'arco di un mese, numero di giorni di conservazione di ciascun backup, la media mensile viene anche calcolata calcolato. Il costo di ogni backup viene calcolato utilizzando le dimensioni dello spazio di archiviazione il backup moltiplicato per la proporzione del mese in cui viene conservato moltiplicato per il prezzo unitario.

Quando esegui un'operazione di ripristino, Firestore misura le dimensioni del backup per l'operazione di ripristino. Le dimensioni del backup sono moltiplicato per il prezzo unitario delle operazioni di ripristino (GiB).

Spiegazione della query

L'utilizzo di Firestore Query Explain comporta dei costi.

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

Quando una query viene spiegata con l'opzione Analizza, indicizza e leggi operazioni vengono eseguite, quindi la query ti viene addebitata come di consueto. Non sono presenti costo aggiuntivo per l'attività di spiegazione e analisi, 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 scoprire quanta rete larghezza di banda che hai utilizzato, puoi utilizzare la console Google Cloud per esportare di fatturazione in 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 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