使用這個基本聊天應用的真實示例來衡量您的 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 美元/月
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 定價。