Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

查看 Cloud Firestore 定價示例

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

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

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

假設

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

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

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

小的
(5 萬次安裝)

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

讀/寫成本
每月總成本 = $11.10/月
每日總閱讀量 40 萬次= 5 萬次免費讀取 +(35 萬次讀取,0.06 美元/10 萬美元) = 3.5 * 0.06 美元
0.21 美元/天 * 30 = 6.30 美元
每天總共 10 萬次寫入= 20K 免費寫入 +(80K 寫入,$0.18/100K) = .8 * 0.18 美元
0.14 美元/天 * 30 = 4.20 美元
每天總共 10 萬次刪除= 20K 免費刪除 +(80K 刪除 $0.02/100K) = .8 * 0.02 美元
0.02 美元/天 * 30 = 0.60 美元
存儲/網絡成本
每月總成本 = $1.04/月
20KB / DAU 的每日出口 * 5K DAU = 100MB 每日出站流量 * 30 =每月 3GB 網絡出站流量
3 GB FREE出口= FREE 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%,這一數字佔已安裝應用的用戶總數。

中等的
(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 萬次刪除= 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%,這一數字佔已安裝應用的用戶總數。

大的
(1000 萬次安裝)

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

讀/寫成本
每月總成本 = 總計:2637.90 美元/月
每日總閱讀量 8000 萬= 5 萬次免費讀取 +(7995 萬次讀取,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 萬次= 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,性能監測,預測和遠程配置。了解更多關於其他火力地堡產品火力地堡定價