Guarda un esempio di prezzi di Cloud Firestore

Utilizza questo esempio reale di app di chat di base per valutare il Cloud Firestore utilizzo e costi. Questa non è una stima esatta, ma può aiutarti a migliorare scopri come viene fatturato il tuo utilizzo di Cloud Firestore.

Panoramica: costi per livello di utilizzo

Per illustrare i costi tipici, considera un'app di chat di esempio in cui gli utenti possono avviare chat con due o più partecipanti. Gli utenti possono vedere i loro le chat in un elenco, leggere i messaggi e inviare messaggi. Per questo esempio, utilizzando i prezzi per la multiregione del Nord America (in particolare nam5).

Premesse

Considera le seguenti ipotesi sull'utilizzo e sull'archiviazione dei dati:

  • Gli utenti attivi giornalieri (DAU) sono il 10% delle installazioni di app totali. Puoi stimare i costi giornalieri utilizzando una stima approssimativa del numero di utenti attivi giornalieri. (DAU). Si tratta degli utenti che aprono e utilizzano attivamente la tua app su un determinato giorno, che in genere è un piccolo sottoinsieme dell'importo totale delle app. e le installazioni di app. Per i calcoli riportati di seguito, abbiamo stimato che gli utenti attivi giornalieri (DAU) rappresentano il 10% del numero totale di installazioni di app.
  • Le dimensioni dei documenti sono relativamente piccole. Consulta la tabella di seguito per una suddivisione delle dimensioni dei documenti in base al tipo.
  • I dati vengono archiviati solo per tre mesi. I messaggi della chat di esempio vengono archiviate soltanto per un periodo di tre mesi. Per tenere conto delle operazioni di eliminazione, i calcoli riportati di seguito mostrano un'eliminazione giornaliera per ogni scrittura giornaliera.
  • Queste stime dei costi riflettono la maggior parte dei costi dell'app di esempio, ma non tutti. Abbiamo tenuto conto della maggior parte dei costi di un'app calcolando le operazioni, l'archiviazione di utenti e messaggi e il traffico in uscita attività descritte in questa guida. Tuttavia, potresti dover tenere conto costi aggiuntivi, a seconda della struttura e delle esigenze di dati dell'app. Usa questa come guida per i calcoli, ma consulta la pagina dei prezzi per spiegazioni più dettagliate sui costi di Cloud Firestore.

Per una suddivisione delle operazioni per attività utente, vedi Sezione Suddivisione: utilizzo fatturato per attività utente.

Piccolo
(50.000 installazioni)

Per 50.000 installazioni di app (5000 utenti attivi giornalieri): 12,14 $/mese

Costi di lettura/scrittura
Costo mensile totale = 11,10 $/mese
400.000 letture giornaliere totali = 50.000 letture senza costi aggiuntivi + (350.000 letture a 0,06 $ ogni 100.000) =   3,5 * 0,06 $
0,21 $ / giorno * 30 = 6,30 $
 
100.000 operazioni di scrittura totali giornaliere = 20.000 operazioni di scrittura senza costi + (80.000 scritture a 0,18.000 $/100.000) =   0,8 * 0,18 $
0,14 $ / giorno * 30 = 4,20 $
 
100.000 eliminazioni giornaliere totali = 20.000 eliminazioni senza costi + (80.000 eliminazioni a 0,02 $/100.000) = 0,8 * 0,02 $
0,02 $ / giorno * 30 = 0,60 $
Costi di archiviazione/networking
Costo mensile totale = 1,04 $/mese
20 kB / DAU di traffico in uscita giornaliero * 5.000 DAU = 100 MB di traffico in uscita giornaliero * 30 =   3 GB di traffico di rete in uscita al mese
3 GB di traffico in uscita senza costi = senza costi1
 
15 kB di archiviazione dei messaggi al giorno / utenti attivi giornalieri (DAU) + 3 kB di spazio di archiviazione / installazione2 =   45 KB di spazio di archiviazione/DAU * 5000 DAU = 225 MB di spazio di archiviazione giornaliero / DAU * 30 = 6,75 GB di spazio di archiviazione mensile utilizzato
1 GB di spazio di archiviazione senza costi + (5,75 * 0,18 $) = 1,04 $ / mese

1 10 GB di traffico di rete in uscita al mese sono senza costi per Cloud Firestore.
2 Dal momento che presupponiamo che gli utenti attivi giornalieri (DAU) rappresentino il 10% del numero totale di utenti vengono installate, di account per il numero totale di utenti che hanno installato la tua app.

Medio
(1 milione di installazioni)

Per 1.000.000 di installazioni di app (100.000 utenti attivi giornalieri): 292,02 $/mese

Costi di lettura/scrittura
Costo mensile totale = 261,90 $/mese
8 milioni di letture giornaliere totali = 50.000 letture senza costi + (7,95 Mln $ legge a 0,06 $/100.000) =   79,5 * 0,06 $
4,77 $ / giorno * 30 = 143,10 $
 
2 milioni di operazioni di scrittura giornaliere totali =   20.000 operazioni di scrittura senza costi + (1,98 Mln scrive a 0,18 $/100.000) = 19,8 * 0,18 $
3,56 $/giorno * 30 = 106,80 $
 
2 milioni di eliminazioni giornaliere totali = 20.000 eliminazioni senza costi aggiuntivi + (1,98 milioni di eliminazioni a 0,02 $/100.000) = 19,8 * 0,02 $
0,40 $ / giorno * 30 = 12,00 $
Costi di archiviazione/networking
Costo mensile totale = 30,12 $/mese
20 KB/DAU di traffico in uscita giornaliero * 100.000 DAU = 2 GB di traffico in uscita giornaliero * 30 = 60 GB di traffico di rete in uscita al mese
10 GB di traffico in uscita senza costi aggiuntivi + (50 GB in uscita * 0,12 $/GB) = 6,00 $ / mese
 
15 KB di spazio di archiviazione giornaliero per i messaggi/DAU + 3 KB di spazio di archiviazione/installazione1 = 45 kB di spazio di archiviazione / DAU * 100.000 DAU =   4,5 GB di spazio di archiviazione giornaliero / DAU * 30 = 135 GB di spazio di archiviazione mensile utilizzato
1 GB di spazio di archiviazione senza costi + (134 GB * 0,18 $/GB) = 24,12 $/mese

1 Poiché presupponiamo che i DAU rappresentino il 10% delle installazioni totali di app, questo numero tiene conto del numero totale di utenti che hanno installato la tua app.

Grande
(10 milioni di installazioni)

Per 10.000.000 di installazioni di app (1.000.000 di utenti attivi giornalieri): 2.951,52 $

Costi di lettura/scrittura
Costo mensile totale = totale: 2637,90 $/mese
80 milioni di letture giornaliere totali = 50.000 letture senza costi aggiuntivi + (79,95 milioni di letture a 0,06 $ ogni 100.000) = 799,5 * 0,06 $
47,97 $ / giorno * 30 = 1439,10 $
 
20 milioni di operazioni di scrittura giornaliere totali = 20.000 operazioni di scrittura senza costi + (19,98 Mln di scritture a 0,18 $/100.000) = 199,8 * 0,18 $
35,96 $ / giorno * 30 = 1078,80 $
 
20 milioni di eliminazioni giornaliere totali = 20.000 eliminazioni senza costi aggiuntivi + (19.980.000 eliminazioni a 0,02 $/100.000) = 199,8 * 0,02 $
4 $/giorno * 30 = 120 $
Costi di archiviazione/networking
Costo mensile totale = 313,62 $/mese
20 kB / DAU di traffico in uscita giornaliero * 1 milione di DAU =   20 GB di traffico in uscita giornaliero * 30 = 600 GB di traffico di rete in uscita al mese
10 GB di traffico in uscita senza costi + (590 GB di traffico in uscita * 0,12 $/GB) = 70,80 $/mese
 
15 KB di spazio di archiviazione giornaliero per i messaggi/DAU + 3 KB di spazio di archiviazione/installazione1 = 45 kB di spazio di archiviazione / DAU * 1 milione di DAU = 45 GB di spazio di archiviazione giornaliero / DAU * 30 = 1350 GB di spazio di archiviazione mensile utilizzato
(1 GB di spazio di archiviazione senza costi) + (1349 GB * 0,18 $/GB) = 242,82 $ / mese

1 Dal momento che riteniamo che gli utenti attivi giornalieri siano il 10% delle installazioni di app totali, questo di account per il numero totale di utenti che hanno installato la tua app.

Un vantaggio del modello di fatturazione Cloud Firestore che vale la pena prendere in considerazione è che paghi per quello che utilizzi. Di conseguenza, la tua fattura potrebbe aumentare e diminuire Conteggio DAU.

Suddivisione: utilizzo fatturato per attività utente

Per la nostra app di chat di esempio, la struttura dei dati è la seguente:

  • users/{userId} - Record utente
  • groups/{groupId}: chat tra 2 o più utenti
    • messages/{messageId}: ogni messaggio di una chat.

Archiviazione dei dati

Per calcolare i costi di archiviazione per l'archiviazione dei dati dell'app, applica quanto segue ipotesi sulle dimensioni dei documenti:

Raccolta Dimensioni del documento (in transito) Dimensioni documento (su disco)*
utenti 1 kB 3 kB
gruppi 0,5 kB 1,5 KB
messaggi 0,25 KB 0,75 kB

*Questo calcolo delle dimensioni include gli indici per i campi del messaggio, ma presuppone che l'indicizzazione sia disabilitata per i contenuti dei messaggi.

Inoltre, l'app memorizza soltanto i messaggi risalenti fino a tre mesi prima della data corrente, per ridurre i costi di archiviazione.

Per ulteriori informazioni sul calcolo dei costi di archiviazione, vedi Informazioni sul calcolo delle dimensioni dello spazio di archiviazione.

Operazioni

In genere gli utenti completano le seguenti attività comuni nell'app:

Le operazioni totali stimate in Cloud Firestore per le tre attività comuni dell'utente dell'app di esempio sono le seguenti:

  • Letture: (5 * 10) + (30) = 80 letture/utente/giorno
  • Scritture: (10 * 2) = 20 scritture / utente / giorno
  • In uscita dalla rete: (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB / utente / giorno
  • Spazio di archiviazione: (20 x 0,75 kB) = 15 kB per utente al giorno

Utilizzo totale per attività utente

Seleziona ogni attività utente per visualizzare la descrizione completa e la suddivisione delle operazioni. costi di archiviazione e networking nell'app.

Visualizzare l'elenco delle chat

Nella schermata Home dell'app vengono caricate le 25 chat più recenti, addebiti per 25 letture di documenti. Supponiamo che un utente attivo apra l'app 5 volte al giorno, per un totale di 125 letture per utente ogni giorno. Tuttavia, è più efficiente come quella nell'esempio seguente, possono ridurre questo carico.

Nell'esempio seguente, limitiamo la query alle nuove chat utilizzando il timestamp per ogni recupero riuscito, archiviato dall'app:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Supponiamo che ci siano in media 10 chat aggiornate ogni volta l'utente controlla l'app. Questa query prevede solo 10 letture di documenti.

Leggere i messaggi di una chat

Gli utenti fanno clic sui thread della chat dalla schermata Home per vedere di messaggi, caricando i 50 messaggi più recenti nel caricamento iniziale.

Supponiamo che l'utente tipico esegua questa azione 5 volte al giorno (una volta per ogni volta che aprono la schermata Home), per un totale di 250 letture per utente al giorno. Possiamo anche limitare la query ai nuovi messaggi dall'ultimo recupero:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

Supponi che un utente riceva circa 30 messaggi al giorno in tutte le chat. Dal giorno hai limitato la query al recupero di nuovi messaggi, a soli 30 messaggi recuperati al giorno.

Inviare un messaggio a una chat

Gli utenti possono inviare messaggi ad altri partecipanti quando sono in una chat. Supponiamo che un utente attivo invii circa 10 messaggi al giorno.

Ogni messaggio inviato comporterà due operazioni di scrittura del documento: una messages sottoraccolta della chat e una scrivi nella chat documento principale per aggiornare il timestamp lastUpdated e metadati.

Tieni presente che il costo della lettura di questi messaggi è stato preso in considerazione negli altri percorsi, pertanto i totali riportati di seguito prendono in considerazione solo questo costo di scrittura.

Utilizzo fatturato per attività di amministrazione

In qualità di proprietario o amministratore di un'app, probabilmente vorrai generare report i dati dell'app. Ad esempio, potresti voler mantenere un conteggio giornaliero di messaggi inviati dai tuoi utenti. Puoi farlo con un'aggregazione count() del gruppo di raccolte messages.

Per le query di aggregazione come count(), ti viene addebitata una sola lettura documenti per ogni batch di massimo 1000 voci di indice corrispondenti alla query. Esecuzione di questo l'aggregazione giornaliera comporta i seguenti addebiti mensili:

Piccole
(50.000 installazioni)

Per 50.000 installazioni di app (5000 DAU): 0,0009 $/mese

5000 utenti attivi * 10 nuovi messaggi per utente = 50.000 nuovi documenti di messaggi al giorno

50.000 documenti conteggiati / 1000 corrispondenze di indice per addebito di lettura = 50 letture

50 letture al giorno * 30 giorni = 1500 letture al mese

1500 letture al mese * 0,06 $/100.000 letture = 0,0009 $ al mese

Medio
(1 milione di installazioni)

Per 1.000.000 di installazioni di app (100.000 utenti attivi giornalieri): 0,018 $/mese

100.000 utenti attivi * 10 nuovi messaggi per utente = 1.000.000 nuovi documenti di messaggi al giorno

1.000.000 di documenti conteggiati / 1.000 corrispondenze di indice per addebito di lettura = 1.000 letture

1000 letture al giorno * 30 giorni = 30.000 letture al mese

30.000 letture al mese * 0,06/100.000 letture al mese = 0,018 $al mese

Grande
(10 mln di installazioni)

Per 10.000.000 di installazioni di app (1.000.000 di utenti attivi giornalieri): 0,18 $

1.000.000 di utenti attivi * 10 nuovi messaggi per utente = 10.000.000 di nuovi documenti di messaggi al giorno

10.000.000 di documenti conteggiati / 1.000 corrispondenze di indice per addebito di lettura = 10.000 letture

10.000 letture al giorno * 30 giorni = 300.000 letture al mese

300.000 letture al mese * 0,06/100000 prezzo di lettura = $ 0,18 al mese

Vantaggi inclusi: servizi senza costi per la tua app

Le operazioni di Cloud Firestore, l'archiviazione e la larghezza di banda della rete sono tutte considerato l'utilizzo fatturabile, ricevi anche una serie di altri vantaggi senza costi aggiuntivi. Prendi in considerazione i seguenti servizi senza costi confronta Cloud Firestore con altre opzioni di database:

  • Accesso client diretto: si accede a Cloud Firestore direttamente dal codice client utilizzando i nostri SDK nativi. Ciò significa che non devi creare ed eseguire un server API per connettere i client mobile al database.
  • Bilanciamento del carico: poiché Cloud Firestore si espande automaticamente per supportare il traffico verso il database, non è necessario eseguire un bilanciatore del carico.
  • Tempo di attività del server: i database Cloud Firestore funzionano sui server Google Cloud, offrendo un uptime mensile superiore al 99%.
  • Autenticazione: effettua l'autenticazione di un numero illimitato di utenti in modo semplice e sicuro con Firebase Authentication Firebase Authentication si integra direttamente con Cloud Firestore, così non devi eseguirne di autenticazione sicura.
  • Notifiche push: invia messaggi e notifiche con Cloud Messaging.
  • Altri prodotti Firebase: integra altri prodotti Firebase senza costi, tra cui A/B Testing, Analytics, Crashlytics, Performance Monitoring, e Remote Config. Scopri di più sugli altri prodotti Firebase e i prezzi di Firebase.