查看 Cloud Firestore 定價範例

使用這個基本聊天應用的真實範例來衡量您的 Cloud Firestore 使用情況和成本。這不是準確的估計,但它可以幫助您更好地了解 Cloud Firestore 使用量的計費方式。

概述:按使用等級劃分的成本

為了說明典型成本,請考慮一個範例聊天應用程序,用戶可以在其中發起與兩個或更多參與者的聊天。用戶可以在清單中查看他們的活動聊天、閱讀訊息和發送訊息。在此範例中,我們使用北美多區域(特別是nam5 )的定價。

假設

考慮以下有關使用和資料儲存的假設:

  • 每日活躍用戶 (DAU) 佔應用程式安裝總量的 10%。您可以使用每日活躍用戶 (DAU) 的粗略估計來估算每日成本。這些是在給定日期主動打開和使用您的應用程式的用戶,通常只佔應用程式總安裝量的一小部分。對於下面的計算,我們估計 DAU 佔應用程式安裝總數的 10%。
  • 文件尺寸相對較小。請參閱下表,以了解按類型劃分的文件大小細目。
  • 數據僅保存三個月。範例聊天應用程式中的消息僅儲存三個月。為了考慮刪除操作,下面的計算顯示了每次每日寫入的每日刪除。
  • 這些成本估算反映了範例應用程式的大部分成本,但不是全部。我們透過計算本指南中概述的最常見使用者任務的操作、使用者和訊息儲存以及出口來計算應用程式的大部分成本。但是,您可能需要考慮額外成本,具體取決於應用程式的結構和資料需求。使用此範例來指導您的運算,但請參閱定價頁面以取得有關 Cloud Firestore 成本的更全面說明。

有關按使用者任務劃分的操作的細分,請參閱細分:按使用者任務的計費使用情況部分。

小的
(5 萬次安裝)

對於 50,000 個應用程式安裝(5,000 個每日活躍用戶):12.14 美元/月

讀/寫成本
每月總費用 = 11.10 美元/月
每日總閱讀量 40 萬= 50K 免費讀取 +(350K 讀取價格為 0.06 美元/100K) = 3.5 * 0.06 美元
0.21 美元/天 * 30 = 6.30 美元
每日總寫入量 100K = 20K 免費寫入 +(80K 寫入價格為 0.18 美元/100K) = .8 * 0.18 美元
0.14 美元/天 * 30 = 4.20 美元
每日總刪除量 10 萬次= 2 萬次免費刪除 +(8 萬次刪除,價格為 0.02 美元/10 萬次) = .8 * 0.02 美元
0.02 美元/天 * 30 = 0.60 美元
儲存/網路成本
每月總費用 = 1.04 美元/月
20KB / DAU 每日出站流量 * 5K DAU = 100MB 每日出站流量 * 30 =每月 3GB 網路出站流量
3 GB 免費出口 = 免費1
15KB每日訊息儲存/DAU + 3KB儲存/安裝2 = 45KB 儲存/DAU * 5K DAU = 225MB 每日儲存空間/DAU * 30 =每月 6.75GB 儲存空間使用量
1GB 免費儲存 + (5.75 * 0.18 美元) = 1.04 美元/月

1 Cloud Firestore 每月 10GB 的網路出站流量是免費的。
2由於我們假設 DAU 佔應用程式安裝總量的 10%,因此該數字代表已安裝應用程式的使用者總數。

中等的
(100 萬次安裝)

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

讀/寫成本
每月總費用 = 261.90 美元/月
每日總閱讀量 800 萬= 5 萬次免費讀取 +(795 萬次讀取,價格為 0.06 美元/10 萬次) = 79.5 * 0.06 美元
4.77 美元/天 * 30 = 143.10 美元
每日總寫入量 200 萬次= 20K 免費寫入 +(198 萬次寫入,價格為 0.18 美元/100K) = 19.8 * 0.18 美元
3.56 美元/天 * 30 = 106.80 美元
每日總刪除量達 200 萬次= 20K 免費刪除 +(198 萬次刪除,價格為 0.02 美元/100K) = 19.8 * 0.02 美元
0.40 美元/天 * 30 = 12.00 美元
儲存/網路成本
每月總費用 = 30.12 美元/月
20KB / DAU 每日出站量 * 100K DAU = 2GB 每日出站流量 * 30 =每月 60GB 網路出站流量
10 GB 免費出站流量 + (50GB 出站流量 * 0.12 美元/GB) = 6.00 美元/月
15KB 每日訊息儲存/DAU + 3KB 儲存/安裝1 = 45KB 儲存/DAU * 100K DAU = 4.5GB 每日儲存空間/DAU * 30 =每月 135GB 儲存空間使用量
1GB 免費儲存 + (134GB * 0.18 美元/GB) = 24.12 美元/月

1由於我們假設 DAU 佔應用程式安裝總量的 10%,因此該數字代表已安裝應用程式的使用者總數。

大的
(1000 萬次安裝)

對於 10,000,000 個應用程式安裝(1,000,000 個每日活躍用戶):2951.52 美元

讀/寫成本
每月總費用 = 總計:2637.90 美元/月
每日總閱讀量 8000 萬= 5 萬次免費讀取 +(7,995 萬次讀取,價格為 0.06 美元/10 萬次) = 799.5 * 0.06 美元
47.97 美元/天 * 30 = 1439.10 美元
每日總寫入量 2000 萬次= 20K 免費寫入 +(1998 萬次寫入,價格為 0.18 美元/100K) = 199.8 * 0.18 美元
35.96 美元/天 * 30 = 1078.80 美元
每日總刪除量 2000 萬次= 20K 免費刪除 +(1998 萬次刪除,價格為 0.02 美元/100K) = 199.8 * 0.02 美元
4.00 美元/天 * 30 = 120.00 美元
儲存/網路成本
每月總費用 = 313.62 美元/月
20KB / DAU 每日出站量 * 1M DAU = 20GB 每日出站流量 * 30 =每月 600GB 網路出站流量
10 GB 免費出站流量 + (590GB 出站流量 * 0.12 美元/GB) = $70.80 美元/月
15KB 每日訊息儲存/DAU + 3KB 儲存/安裝1 = 45KB 儲存/DAU * 1M DAU = 45GB 每日儲存空間/DAU * 30 =每月 1350GB 儲存空間使用量
(1GB 免費儲存)+(1349GB * 0.18 美元/GB)= 242.82 美元/月

1由於我們假設 DAU 佔應用程式安裝總量的 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 個與查詢相符的索引條目讀取一個文件付費。運行此每日聚合會增加以下每月費用:

小的
(5 萬次安裝)

對於 50,000 個應用程式安裝(5,000 個 DAU):0.0009 USD/月

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 美元

大的
(1000 萬次安裝)

對於 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 驗證簡單、安全地對無限用戶進行身份驗證。 Firebase 驗證直接與 Cloud Firestore 集成,因此您無需執行自己的驗證服務。
  • 推播通知:使用雲端訊息發送訊息和通知。
  • 其他 Firebase 產品:免費整合其他 Firebase 產品,包括 A/B 測試、分析、Crashlytics、效能監控和遠端配置。詳細了解其他 Firebase 產品Firebase 定價