查看 Cloud Firestore 定價範例

您可以參考這個基本即時通訊應用程式的實際範例,評估 Cloud Firestore 用量和費用。這並非精確的預估值,但可協助您進一步瞭解 Cloud Firestore 用量的計費方式。

總覽:依用量層級列出的費用

為說明一般費用,我們以一個範例即時通訊應用程式為例,使用者可以與兩位以上的參與者發起即時通訊。使用者可以查看進行中的即時通訊清單、閱讀訊息及傳送訊息。在本例中,我們使用的是北美多區域 (具體來說是 nam5) 的定價。

假設

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

  • 每日活躍使用者 (DAU) 占應用程式安裝總數的 10%。您可以根據每日活躍使用者 (DAU) 的粗略估算值,預估每日費用。這些使用者會在特定日期主動開啟並使用應用程式,通常只占應用程式總安裝量的一小部分。在下列計算中,我們預估每日活躍使用者人數為應用程式安裝總數的 10%。
  • 文件大小相對較小。請參閱下表,瞭解各類型文件的檔案大小。
  • 資料只會保存三個月。範例即時通訊應用程式中的訊息只會儲存三個月。為了將刪除作業納入考量,以下計算方式假設每天寫入和刪除的資料量相同。
  • 這些預估費用反映了範例應用程式的大部分費用,但並非全部。我們計算了本指南所述最常見使用者工作的作業、使用者和訊息儲存空間,以及輸出,藉此估算應用程式的大部分成本。不過,視應用程式的結構和資料需求而定,您可能需要考量額外費用。請參考這個範例來計算費用,並參閱定價頁面,進一步瞭解 Cloud Firestore 費用。

如要查看使用者工作的作業細目,請參閱「細目:使用者工作的計費用量」一節。

小型
(5 萬次安裝)

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

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

1 Cloud Firestore 每月提供 10 GB 的免付費網路輸出。
2 由於我們假設每日活躍使用者人數是應用程式安裝總數的 10%,因此這個數字代表已安裝應用程式的使用者總數。

中
(100 萬次安裝)

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

讀取/寫入費用
每月總費用 = $261.90 美元/月
每日總讀取次數 800 萬 =   5 萬次免付費讀取 + (795 萬次讀取,每 10 萬次 $0.06 美元) =   79.5 * $0.06
$4.77 美元 / 天 * 30 = $143.10 美元
 
每日寫入總次數:200 萬次 =   2 萬次免付費寫入 + (198 萬次寫入,每 10 萬次 $0.18 美元) =   19.8 * $0.18
$3.56 美元 / 天 * 30 = $106.80 美元
 
每日刪除總數 200 萬 =   2 萬次免付費刪除作業 + (198 萬次刪除作業,每 10 萬次 $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 / 每日活躍使用者 + 儲存空間 3 KB / 安裝1 =   45 KB 儲存空間 / 每日活躍使用者 * 10 萬名每日活躍使用者 =   每日儲存空間 4.5 GB / 每日活躍使用者人數 * 30 =   每月儲存空間用量 135 GB
1 GB 免付費儲存空間 + (134 GB * $0.18 美元/GB) = 每月 $24.12 美元

1 假設每日活躍使用者人數占應用程式總安裝次數的 10%,這個數字代表已安裝應用程式的使用者總數。

大型
(1,000 萬次安裝)

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

讀取/寫入費用
每月總費用 = 總計:$2,637.90 美元/月
每日讀取總次數 8,000 萬 =   50,000 次免付費讀取 + (7,995 萬次讀取,每 10 萬次 $0.06 美元) =   799.5 * $0.06
$47.97 美元 / 天 * 30 = $1439.10 美元
 
每日寫入總次數 2,000 萬次 =   2 萬次免付費寫入作業 + (1,998 萬次寫入作業,每 10 萬次 $0.18 美元) =   199.8 * $0.18
$35.96 美元 / 天 * 30 = $1078.80 美元
 
每天刪除 2,000 萬個 =   2 萬次免付費刪除作業 + (1,998 萬次刪除作業,每 10 萬次 $0.02 美元) =   199.8 * $0.02
$4.00 美元 / 天 * 30 = $120.00 美元
儲存空間/網路費用
每月總費用 = $313.62 美元/月
每日輸出 20 KB / 每日活躍使用者 * 100 萬名每日活躍使用者 =   每日 20 GB 輸出量 * 30 =   每月 600 GB 網路輸出
10 GB 免費輸出 + (590 GB 輸出 * 每 GB $0.12 美元) = 每月 $70.80 美元
 
每日訊息儲存空間 15 KB / 每日活躍使用者 + 儲存空間 3 KB / 安裝1 =   45 KB 儲存空間 / 每日活躍使用者 * 100 萬名每日活躍使用者 =   每日儲存空間 45 GB / 每日活躍使用者 * 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.25 KB) + (30 * 0.25 KB) = 20 KB / 使用者 / 天
  • 儲存空間:(20 * 0.75 KB) = 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 名每日活躍使用者):每月 $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 次讀取 * 0.06/100,000 讀取價格 = 每月 $0.018 美元

大型
(1,000 萬次安裝)

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 次讀取 * 0.06/100,000 讀取價格 = 每月 $ 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 定價。