查看 Cloud Firestore 定價示例

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

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

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

假設

考慮以下關於使用和數據存儲的假設:

  • 每日活躍用戶 (DAU) 占應用總安裝量的 10%。您可以使用對每日活躍用戶 (DAU) 的粗略估算來估算每日成本。這些是在給定日期積極打開和使用您的應用程序的用戶,這通常是您的應用程序總安裝量的一小部分。對於以下計算,我們估計 DAU 占應用安裝總數的 10%。
  • 文檔尺寸相對較小。下面表用於通過型原稿尺寸的擊穿。
  • 數據僅存儲三個月。示例聊天應用程序中的消息僅存儲三個月。考慮到刪除操作,下面的計算顯示了每個每日寫入的每日刪除。
  • 這些成本估算反映了示例應用程序的大部分成本,但不是全部。我們通過計算本指南中列出的最常見用戶任務的操作、用戶和消息存儲以及出口來計算應用程序的大部分成本。但是,您可能需要考慮額外的成本,具體取決於您的應用程序的結構和數據需求。用這個例子來指導你的計算,而是指的定價頁為雲公司的FireStore成本更深入的解釋。

對於用戶任務操作的分析,請參閱該故障:帳單的使用由用戶任務部分。

小的
(50k 次安裝)

對於 50,000 次應用安裝(5,000 名每日活躍用戶):每月 12.14 美元

讀/寫成本
每月總費用 = 11.10 美元/月
每日總閱讀量 400K = 5 萬次免費讀取 +(35 萬次讀取,0.06 美元/10 萬美元) = 3.5 * 0.06 美元
0.21 美元/天 * 30 = 6.30 美元
每日總寫入量 100K = 2 萬次免費寫入 +(8 萬次寫入,0.18 美元/10 萬美元) = .8 * 0.18 美元
0.14 美元/天 * 30 = 4.20 美元
每日總刪除量 100K = 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 10GB是無成本的雲計算公司的FireStore。
2,因為我們的假設是,在DAU是總應用安裝量的10%,這一數字佔已安裝應用的用戶總數。

中等的
(1M 安裝)

對於 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 萬= 2 萬次免費寫入 +(198 萬次寫入,0.18 美元/10 萬美元) = 19.8 * 0.18 美元
3.56 美元/天 * 30 = 106.80 美元
每日總刪除量 200 萬= 2 萬次免費刪除 +(198 萬次刪除,0.02 美元/10 萬美元) = 19.8 * 0.02 美元
0.40 美元/天 * 30 = 12.00 美元
存儲/網絡成本
每月總費用 = 30.12 美元/月
20KB / DAU 的每日出口 * 100K DAU = 2GB 每日出站流量 * 30 = 60GB 每月網絡出口
10 GB 免費出口 + (50GB 出口 * 0.12 USD/GB) = 6.00 USD/月
15KB每日消息存儲/ DAU + 3KB存儲/ 1安裝= 45KB 存儲/DAU * 100K DAU = 4.5GB 每日存儲/DAU * 30 =每月 135GB 存儲使用量
1GB 免費存儲 + (134GB * 0.18 美元/GB) = 24.12 美元/月

1,因為我們的假設是,在DAU是總應用安裝量的10%,這一數字佔已安裝應用的用戶總數。


(10M 安裝)

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

讀/寫成本
每月總成本 = 總計:2637.90 美元/月
每日總閱讀量 80M = 5 萬次免費讀取 +(7995 萬次讀取,0.06 美元/10 萬美元) = 799.5 * 0.06 美元
47.97 美元/天 * 30 = 1439.10 美元
每日總寫入量 20M = 2 萬次免費寫入 +(1998 萬次寫入,0.18 美元/10 萬美元) = 199.8 * 0.18 美元
35.96 美元/天 * 30 = 1078.80 美元
每日總刪除量 20M = 2 萬次免費刪除 +(1998 萬次刪除,0.02 美元/10 萬美元) = 199.8 * $0.02
4.00 美元/天 * 30 = 120.00 美元
存儲/網絡成本
每月總費用 = 313.62 美元/月
20KB / DAU 的每日出口 * 1M DAU = 20GB 每日出站流量 * 30 = 600GB 每月網絡出口
10 GB 免費出口 + (590GB 出口 * 0.12 USD/GB) = 70.80 USD/月
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時間戳和其他元數據。

請注意,讀取這些消息的成本已計入其他旅程,因此以下總計僅考慮此寫入成本。

包含的好處:為您的應用程序提供免費服務

雖然 Cloud Firestore 操作、存儲和網絡帶寬都被視為可計費的使用量,但您還可以免費獲得各種其他好處。在將 Cloud Firestore 與其他數據庫選項進行比較時,請考慮以下免費服務:

  • 直接客戶端訪問:雲公司的FireStore直接從客戶端代碼中使用我們的原生SDK訪問。這意味著您無需構建和運行 API 服務器即可將移動客戶端連接到數據庫。
  • 負載均衡:由於雲計算公司的FireStore會自動調節以支持流量到你的數據庫,你沒有運行一個負載平衡器。
  • 服務器正常運行時間:雲數據庫的FireStore在谷歌雲服務器上運行,提供超過99%的月正常運行時間
  • 驗證:身份驗證無限用戶簡單,安全地與火力地堡認證。 Firebase 身份驗證直接與 Cloud Firestore 集成,因此您無需運行自己的身份驗證服務。
  • 推送通知:發送消息和通知雲端通訊
  • 其他火力地堡產品:集成在沒有成本等火力地堡產品,包括A / B測試,分析,Crashlytics,性能監測,預測和遠程配置。了解更多關於其他火力地堡產品火力地堡定價