查看 Cloud Firestore 定價範例

請參考這個基本即時通訊應用程式的實際範例,評估您的 Cloud Firestore 用量和費用。這並非確切的預估值,但有助於您進一步瞭解 Cloud Firestore 用量如何計費。

總覽:依用量層級計算的費用

舉例來說,即時通訊應用程式可讓使用者與兩位或更多參與者啟動聊天。使用者可以在清單中查看目前的聊天內容、閱讀訊息,以及傳送訊息。在本例中,我們使用北美多區域 (具體為 nam5) 的價格。

假設

請考量下列有關使用情形和資料儲存空間的假設:

  • 每日活躍使用者 (DAU) 是應用程式總安裝數的 10%。您可以根據每日活躍使用者人數 (DAU) 的粗略估計值,估算每日成本。這些使用者是指在特定日期積極開啟並使用應用程式的使用者,通常是應用程式總安裝數的一小部分。在下列計算中,我們將 DAU 估算為應用程式總安裝數的 10%。
  • 文件大小相對較小。請參閱下表,瞭解文件大小依類型劃分的細目。
  • 資料只會保留三個月。範例即時通訊應用程式中的訊息只會保留三個月。為了計算刪除作業,下列計算會顯示每天刪除作業的每日寫入作業。
  • 這些預估費用反映的是範例應用程式的大部分成本,但並非全部。我們已計算應用程式的大部分成本,方法是計算這份指南中列出的使用者最常執行的作業、使用者和訊息儲存空間,以及傳出作業。不過,您可能需要考量額外費用,具體取決於應用程式的結構和資料需求。請參考這個範例來計算費用,但如要進一步瞭解 Cloud Firestore 費用,請參閱定價頁面

如要查看依使用者工作分類的作業細目,請參閱「細目:依使用者工作計算的帳單使用量」一節。


(50,000 次安裝)

50,000 次應用程式安裝 (5,000 名每日活躍使用者):$12.14 美元/月

讀取/寫入費用
每月總費用 = $11.10 美元/月
每日總讀取次數達 40 萬 =   50K 免付費讀取次數 + (350K 讀取次數,每 100,000 次 $0.06 美元) =   3.5 * $0.06
$0.21 美元 / 天 * 30 天 = $6.30 美元
 
每日總寫入作業數量為 100K =   20K 次免費寫入作業 + (80K 次寫入作業,每 100K 次 $0.18 美元) =   .8 * $0.18
$0.14 美元 / 天 * 30 天 = $4.20 美元
 
每日總刪除數 10 萬 =   20,000 次免費刪除 + (80,000 次刪除,每 100,000 次 $0.02 美元) =   .8 * $0.02
$0.02 美元 / 天 * 30 = $0.60 美元
儲存空間/網路費用
每月總費用 = $1.04 美元/月
每日輸出流量 20 KB / DAU * 5,000 個 DAU =   每日輸出流量 100 MB * 30 =   每月 3 GB 網路輸出量
3 GB 免費輸出 = 免費1
 
每日訊息儲存空間 15 KB/DAU + 安裝空間 3 KB2 =   45 KB 的儲存空間 / DAU * 5,000 名 DAU =   225 MB 的每日儲存空間 / DAU * 30 =   每月 6.75 GB 的儲存空間用量
1 GB 免費儲存空間 + (5.75 * $0.18) = $1.04 美元 / 月

1 Cloud Firestore 每月可免費使用 10 GB 的網路輸出量。
2 我們假設 DAU 是總安裝次數的 10%,因此這個數字會計算已安裝應用程式的使用者總數。


(100 萬次安裝)

1,000,000 次應用程式安裝 (100,000 名每日活躍使用者):$292.02 美元/月

讀取/寫入費用
每月總費用 = $261.90 美元/月
每日總讀取次數 800 萬 =   50,000 次免付費閱讀 + (795 萬次閱讀,每 100,000 次 $0.06 美元) =   79.5 * $0.06
$4.77 美元 / 天 * 30 天 = $143.10 美元
 
每日總寫入次數 200 萬 =   20K 免費寫入 + (1.98M 次寫入,每 100K 次 $0.18 美元) =   19.8 * $0.18
$3.56 美元 / 天 * 30 天 = $106.80 美元
 
每天刪除 200 萬筆 =   20,000 次免費刪除作業 + (1,980,000 次刪除作業,每 100,000 次刪除作業 $0.02 美元) =   19.8 * $0.02
$0.40 美元 / 天 * 30 天 = $12.00 美元
儲存空間/網路費用
每月總費用 = $30.12 美元/月
每日輸出流量 20 KB / DAU * 10 萬個 DAU =   每日輸出流量 2 GB * 30 =   每月 60 GB 網路輸出量
10 GB 免費輸出量 + (50 GB 輸出量 * $0.12 美元/GB) = $6.00 美元 / 月
 
每日訊息儲存空間 15 KB / DAU + 儲存空間 3 KB / 安裝1 =   45 KB 的儲存空間 / DAU * 10 萬名 DAU =   4.5 GB 的每日儲存空間 / DAU * 30 =   每月 135 GB 的儲存空間用量
1 GB 免費儲存空間 + (134 GB * $0.18/GB) = $24.12 美元 / 月

1 我們假設每日活躍使用者人數是應用程式總安裝數的 10%,因此這個數字會計算出安裝應用程式的使用者總數。

Large
(10M 安裝次數)

10,000,000 次應用程式安裝 (1,000,000 名每日活躍使用者):$2951.52 美元

讀取/寫入費用
每月總費用 = 總計:$2637.90 美元/月
每日讀取次數總計 8,000 萬 =   50,000 次免付費閱讀 + (79,950 次閱讀,每 100,000 次閱讀 $0.06 美元) =   799.5 * $0.06
$47.97 美元 / 天 * 30 天 = $1439.10 美元
 
每日總寫入次數 2,000 萬 =   20K 免費寫入作業 + (19.98M 次寫入作業,每 100,000 次 $0.18 美元) =   199.8 * $0.18
$35.96 美元 / 天 * 30 天 = $1078.80 美元
 
每日總刪除次數 2,000 萬 =   20,000 次免費刪除作業 + (19,980,000 次刪除作業,每 100,000 次刪除作業 $0.02 美元) =   199.8 * $0.02
$4.00 美元 / 天 * 30 天 = $120.00 美元
儲存空間/網路費用
每月總費用 = $313.62 美元/月
每日輸出流量 20 KB / DAU * 100 萬 DAU =   每日輸出流量 20 GB * 30 =   每月 600 GB 的網路輸出量
10 GB 免費輸出流量 + (590 GB 輸出流量 * $0.12 美元/GB) = 每月 $70.80 美元
 
每日訊息儲存空間 15 KB / DAU + 儲存空間 3 KB / 安裝1 =   45 KB 儲存空間 / DAU * 100 萬名 DAU =   45 GB 的每日儲存空間 / DAU * 30 =   每月 1350 GB 的儲存空間用量
(1 GB 免費儲存空間) + (1349 GB * $0.18 美元/GB) = $242.82 美元 / 月

1 我們假設每日活躍使用者人數是應用程式總安裝數的 10%,因此這個數字會計算出安裝應用程式的使用者總數。

Cloud Firestore 結帳模式的好處在於,您只需為實際使用的部分付費。因此,您的帳單金額可能會隨著 DAU 人數而增加或減少。

細目資料:按使用者工作項計費的用量

以我們的對話式應用程式範例來說,資料結構如下所示:

  • users/{userId} - 使用者記錄
  • groups/{groupId} - 2 位以上使用者之間的聊天
    • messages/{messageId}:即時通訊中的每則訊息。

資料儲存

如要計算儲存應用程式資料的儲存費用,請套用下列文件大小假設:

集合 文件大小 (傳輸中) 文件大小 (磁碟上)*
使用者 1KB 3KB
群組 0.5KB 1.5KB
訊息 0.25KB 0.75KB

*這個大小計算值包含訊息欄位的索引,但假設訊息內容已停用索引。

應用程式也會只儲存三個月內的訊息,以降低儲存空間成本。

如要進一步瞭解如何計算儲存空間費用,請參閱「瞭解儲存空間大小計算方式」。

作業套件

使用者通常會在應用程式中完成下列常見工作:

範例應用程式在 Cloud Firestore 中,針對三項典型使用者工作預估的總操作次數如下:

  • 讀取: (5 * 10) + (30) = 80 次讀取 / 使用者 / 天
  • 寫入: (10 * 2) = 20 次寫入 / 使用者 / 天
  • 網路輸出:(50 * 0.25KB) + (30 * 0.25KB) = 20KB / 使用者 / 天
  • 儲存空間:(20 * 0.75KB) = 15 KB / 使用者 / 天

按使用者工作分配的總用量

選取各項使用者工作,即可查看應用程式中作業、儲存空間和網路費用的完整說明和細目。

查看即時通訊記錄清單

應用程式主畫面會載入最近 25 次的即時通訊,因此會產生 25 次的文件讀取費用。假設活躍使用者每天開啟應用程式 5 次,每位使用者每天讀取 125 次。不過,如同下方範例所示,更有效率的查詢可減少這類負載。

在以下範例中,我們會使用應用程式儲存的每個成功擷取作業時間戳記,將查詢限制在新的聊天:

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

假設使用者每次查看應用程式時,平均有 10 個更新的聊天紀錄。這項查詢只會產生 10 次文件讀取作業。

閱讀即時通訊中的訊息

使用者從主畫面點選聊天串流,即可查看最近的訊息,並在初始載入時載入最近的 50 則訊息。

假設一般使用者每天執行這項操作 5 次 (每次開啟主畫面一次),因此每位使用者每天總共會讀取 250 次。我們也可以將查詢限制在自上次擷取時間以來的新訊息:

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

假設使用者每天會收到所有即時通訊的 30 則訊息。由於您已限制查詢,只擷取新訊息,因此每天只會擷取 30 封郵件。

傳送訊息到即時通訊

使用者在即時通訊中,可以傳送訊息給其他參與者。 假設活躍使用者每天傳送約 10 則訊息。

每則傳送的訊息都會導致兩次文件寫入作業:一次寫入聊天的 messages 子集合,另一次寫入聊天父項文件,以便更新 lastUpdated 時間戳記和其他中繼資料。

請注意,讀取這些訊息的費用已計入其他歷程,因此下方的總費用只會考量這項寫入費用。

系統管理員工作計費用量

身為應用程式擁有者或管理員,您可能會想根據應用程式資料產生報表。舉例來說,您可能想保留使用者每天傳送訊息的次數。您可以透過 messages 收集群組的 count() 匯總來達成這項目標。

針對匯總查詢 (例如 count()),查詢找出的每批次最多可有 1,000 個索引項目,而各批次會產生讀取文件 1 次的費用。執行每日匯總功能會產生下列月費:


(50,000 次安裝)

50,000 次應用程式安裝 (5,000 位 DAU):每月 $0.0009 美元

5,000 位活躍使用者 * 每位使用者 10 封新訊息 = 每天 50,000 份新訊息文件

50,000 份計入的文件 / 每讀取一次收費的 1,000 個索引相符項目 = 50 次讀取

每日 50 次讀取 * 30 天 = 每月 1,500 次讀取

每月 1,500 次讀取 * .06/100,000 讀取價格 = 每月 $0.0009 美元


(100 萬次安裝)

1,000,000 次應用程式安裝 (100,000 名每日活躍使用者):每月 $0.018 美元

100,000 位活躍使用者 * 每位使用者 10 封新訊息 = 每天 1,000,000 封新訊息文件

1,000,000 份計入的文件 / 每讀取費用的 1,000 個索引比對 = 1,000 次讀取

每日 1,000 次讀取 * 30 天 = 每月 30,000 次讀取

每月 30,000 次讀取 * .06/100,000 讀取價格 = 每月 $0.018 美元

Large
(10M 安裝次數)

10,000,000 次應用程式安裝 (1,000,000 名每日活躍使用者):$0.18 美元

1,000,000 位活躍使用者 * 每位使用者 10 封新訊息 = 每天 10,000,000 封新訊息文件

10,000,000 份文件計數 / 每讀取費用的 1,000 個索引比對 = 10,000 次讀取

每日 10,000 次讀取 * 30 天 = 每月 300,000 次讀取

每月 300,000 次讀取 * .06/100000 讀取價格 = 每月 $ 0.18 美元

優點:為應用程式提供免費服務

雖然 Cloud Firestore 作業、儲存空間和網路頻寬都屬於可計費的用量,但您也可以享有各種其他福利,且不需額外付費。在比較 Cloud Firestore 與其他資料庫選項時,請考慮下列免費服務:

  • 直接用戶端存取:使用原生 SDK 直接從用戶端程式碼存取 Cloud Firestore。也就是說,您不必建構及執行 API 伺服器,即可將行動用戶端連結至資料庫。
  • 負載平衡:由於 Cloud Firestore 會自動調度資源,以支援資料庫的流量,因此您不必執行負載平衡器。
  • 伺服器正常運作時間: Cloud Firestore 資料庫會在 Google Cloud 伺服器上運作,提供超過 99% 的月正常運作時間
  • 驗證:使用 Firebase Authentication,以簡單又安全的方式驗證無限使用者。Firebase Authentication 會直接整合 Cloud Firestore,因此您不需要自行執行驗證服務。
  • 推播通知:使用 Cloud Messaging 傳送訊息和通知。
  • 其他 Firebase 產品:免費整合其他 Firebase 產品,包括 A/B 測試、Analytics、Crashlytics、Performance Monitoring 和遠端設定。進一步瞭解其他 Firebase 產品Firebase 定價