Xem ví dụ về giá của Cloud Firestore

Sử dụng ví dụ thực tế này về ứng dụng trò chuyện cơ bản để đánh giá mức sử dụng và chi phí Cloud Firestore của bạn. Đây không phải là ước tính chính xác nhưng nó có thể giúp bạn hiểu rõ hơn về cách tính phí sử dụng Cloud Firestore của bạn.

Tổng quan: Chi phí theo mức độ sử dụng

Để minh họa chi phí thông thường, hãy xem xét một ứng dụng trò chuyện mẫu, trong đó người dùng có thể bắt đầu trò chuyện với hai người tham gia trở lên. Người dùng có thể xem các cuộc trò chuyện đang hoạt động của họ trong danh sách, đọc tin nhắn và gửi tin nhắn. Trong ví dụ này, chúng tôi đang sử dụng mức giá cho nhiều khu vực ở Bắc Mỹ (cụ thể là nam5 ).

Giả định

Hãy xem xét các giả định sau về việc sử dụng và lưu trữ dữ liệu:

  • Người dùng hoạt động hàng ngày (DAU) chiếm 10% tổng số lượt cài đặt ứng dụng. Bạn có thể ước tính chi phí hàng ngày của mình bằng cách sử dụng ước tính sơ bộ về Số người dùng hoạt động hàng ngày (DAU). Đây là những người dùng tích cực mở và sử dụng ứng dụng của bạn vào một ngày nhất định, thường là một phần nhỏ trong tổng số lượt cài đặt ứng dụng của bạn. Đối với các tính toán bên dưới, chúng tôi ước tính DAU chiếm 10% tổng số lượt cài đặt ứng dụng.
  • Kích thước tài liệu tương đối nhỏ. Xem bảng bên dưới để biết thông tin chi tiết về kích thước tài liệu theo loại.
  • Dữ liệu chỉ được lưu trữ trong ba tháng. Tin nhắn trong ứng dụng trò chuyện mẫu chỉ được lưu trữ trong thời gian ba tháng. Để tính toán các thao tác xóa, các phép tính bên dưới hiển thị số lần xóa hàng ngày cho mỗi lần ghi hàng ngày.
  • Những ước tính chi phí này phản ánh phần lớn chi phí của ứng dụng mẫu, nhưng không phải tất cả. Chúng tôi đã tính phần lớn chi phí của ứng dụng bằng cách tính toán các hoạt động, dung lượng lưu trữ tin nhắn và người dùng cũng như lối ra cho các tác vụ người dùng thường xuyên nhất được nêu trong hướng dẫn này. Tuy nhiên, bạn có thể cần phải tính đến các chi phí bổ sung, tùy thuộc vào cấu trúc ứng dụng và nhu cầu dữ liệu của bạn. Sử dụng ví dụ này để hướng dẫn cách tính toán của bạn, nhưng hãy tham khảo trang định giá để được giải thích kỹ hơn về chi phí của Cloud Firestore.

Để biết thông tin chi tiết về hoạt động theo nhiệm vụ của người dùng, hãy xem phần Phân tích: Mức sử dụng được tính phí theo nhiệm vụ của người dùng .

Bé nhỏ
(50k lượt cài đặt)

Đối với 50.000 lượt cài đặt ứng dụng (5.000 Người dùng hoạt động hàng ngày): 12,14 USD/tháng

Chi phí đọc/ghi
Tổng chi phí hàng tháng = 11,10 USD/tháng
Tổng số 400 nghìn lượt đọc hàng ngày = 50K lượt đọc miễn phí + (350K lượt đọc ở mức 0,06 USD/100K) = 3,5 * 0,06 USD
0,21 USD / ngày * 30 = 6,30 USD
Tổng cộng 100 nghìn lượt viết hàng ngày = 20K ghi không mất phí + (80K ghi ở mức 0,18 USD/100K) = 0,8 * 0,18 USD
0,14 USD / ngày * 30 = 4,20 USD
Tổng cộng 100K lượt xóa hàng ngày = 20K lượt xóa miễn phí + (80K lượt xóa ở mức 0,02 USD/100K) = 0,8 * 0,02 USD
0,02 USD / ngày * 30 = 0,60 USD
Chi phí lưu trữ/kết nối mạng
Tổng chi phí hàng tháng = 1,04 USD/tháng
20KB / DAU đầu ra hàng ngày * 5K DAU = 100MB dữ liệu đi ra hàng ngày * 30 = 3GB sử dụng mạng hàng tháng
3 GB đầu ra miễn phí = Miễn phí 1
15KB lưu trữ tin nhắn hàng ngày / DAU + 3KB lưu trữ / cài đặt 2 = 45KB dung lượng lưu trữ / DAU * 5K DAU = 225 MB dung lượng lưu trữ hàng ngày / DAU * 30 = Mức sử dụng bộ nhớ hàng tháng là 6,75GB
1GB dung lượng lưu trữ miễn phí + (5,75 * 0,18 USD) = 1,04 USD / tháng

1 10GB đầu ra mạng hàng tháng là miễn phí đối với Cloud Firestore.
2 Vì giả định của chúng tôi là DAU chiếm 10% tổng số lượt cài đặt ứng dụng nên con số này chiếm tổng số người dùng đã cài đặt ứng dụng của bạn.

Trung bình
(1 triệu lượt cài đặt)

Đối với 1.000.000 lượt cài đặt ứng dụng (100.000 Người dùng hoạt động hàng ngày): 292,02 USD/tháng

Chi phí đọc/ghi
Tổng chi phí hàng tháng = 261,90 USD/tháng
Tổng số 8 triệu lượt đọc hàng ngày = 50K lượt đọc miễn phí + (7,95 triệu lượt đọc ở mức 0,06 USD/100K) = 79,5 * 0,06 USD
4,77 USD / ngày * 30 = 143,10 USD
Tổng cộng 2 triệu lượt ghi hàng ngày = 20K ghi không mất phí + (1,98 triệu ghi ở mức 0,18 USD/100K) = 19,8 * 0,18 USD
3,56 USD / ngày * 30 = 106,80 USD
Tổng cộng 2 triệu lượt xóa hàng ngày = 20K lượt xóa miễn phí + (1,98 triệu lượt xóa ở mức 0,02 USD/100K) = 19,8 * 0,02 USD
0,40 USD / ngày * 30 = 12,00 USD
Chi phí lưu trữ/kết nối mạng
Tổng chi phí hàng tháng = 30,12 USD/tháng
20KB / DAU đầu ra hàng ngày * 100K DAU = 2GB đầu ra hàng ngày * 30 = 60GB đầu ra mạng hàng tháng
10 GB đầu ra miễn phí + (50 GB đầu ra * 0,12 USD/GB) = 6,00 USD / tháng
15KB lưu trữ tin nhắn hàng ngày / DAU + 3KB lưu trữ / cài đặt 1 = 45KB dung lượng lưu trữ / DAU * 100K DAU = 4,5GB dung lượng lưu trữ hàng ngày / DAU * 30 = Mức sử dụng bộ nhớ hàng tháng 135GB
1GB dung lượng lưu trữ miễn phí + (134GB * 0,18 USD/GB) = 24,12 USD / tháng

1 Vì giả định của chúng tôi là DAU chiếm 10% tổng số lượt cài đặt ứng dụng nên con số này chiếm tổng số người dùng đã cài đặt ứng dụng của bạn.

Lớn
(10 triệu lượt cài đặt)

Đối với 10.000.000 lượt cài đặt ứng dụng (1.000.000 Người dùng hoạt động hàng ngày): 2951,52 USD

Chi phí đọc/ghi
Tổng chi phí hàng tháng = Tổng cộng: 2637,90 USD/tháng
Tổng số 80 triệu lượt đọc hàng ngày = 50K lượt đọc miễn phí + (79,95 triệu lượt đọc ở mức 0,06 USD/100K) = 799,5 * 0,06 USD
47,97 USD / ngày * 30 = 1439,10 USD
Tổng cộng 20 triệu lượt ghi hàng ngày = 20K ghi không mất phí + (19,98 triệu ghi ở mức 0,18 USD/100K) = 199,8 * 0,18 USD
35,96 USD / ngày * 30 = 1078,80 USD
Tổng cộng 20 triệu lượt xóa hàng ngày = 20K lượt xóa miễn phí + (19,98 triệu lượt xóa ở mức 0,02 USD/100K) = 199,8 * 0,02 USD
4,00 USD / ngày * 30 = 120,00 USD
Chi phí lưu trữ/kết nối mạng
Tổng chi phí hàng tháng = 313,62 USD/tháng
20KB / DAU đầu ra hàng ngày * 1M DAU = 20GB đầu ra hàng ngày * 30 = 600GB đầu ra mạng hàng tháng
10 GB đầu ra miễn phí + (đầu ra 590 GB * 0,12 USD/GB) = 70,80 USD / tháng
15KB lưu trữ tin nhắn hàng ngày / DAU + 3KB lưu trữ / cài đặt 1 = 45KB dung lượng lưu trữ / DAU * 1M DAU = 45GB dung lượng lưu trữ hàng ngày / DAU * 30 = Mức sử dụng bộ nhớ hàng tháng 1350GB
(1GB dung lượng lưu trữ miễn phí) + (1349GB * 0,18 USD/GB) = 242,82 USD / tháng

1 Vì giả định của chúng tôi là DAU chiếm 10% tổng số lượt cài đặt ứng dụng nên con số này chiếm tổng số người dùng đã cài đặt ứng dụng của bạn.

Một lợi ích của mô hình thanh toán Cloud Firestore đáng xem xét là bạn chỉ trả tiền cho những gì bạn sử dụng. Kết quả là hóa đơn của bạn có thể tăng hoặc giảm theo số DAU của bạn.

Phân tích: Mức sử dụng được tính phí theo tác vụ của người dùng

Đối với ứng dụng trò chuyện mẫu của chúng tôi, cấu trúc dữ liệu như sau:

  • users/{userId} - Hồ sơ người dùng
  • groups/{groupId} - Trò chuyện giữa 2 người dùng trở lên
    • messages/{messageId} — Mỗi tin nhắn trong cuộc trò chuyện.

Lưu trữ dữ liệu

Để tính chi phí lưu trữ cho việc lưu trữ dữ liệu của ứng dụng, hãy áp dụng các giả định sau về kích thước tài liệu:

Bộ sưu tập Kích thước tài liệu (đang chuyển tiếp) Kích thước tài liệu (trên đĩa)*
người dùng 1KB 3KB
các nhóm 0,5KB 1,5KB
tin nhắn 0,25KB 0,75KB

*Tính toán kích thước này bao gồm các chỉ mục cho các trường tin nhắn, nhưng giả định việc lập chỉ mục bị vô hiệu hóa đối với nội dung tin nhắn.

Ứng dụng này cũng chỉ lưu trữ các tin nhắn cách đây tối đa ba tháng để giảm chi phí lưu trữ.

Để biết thêm thông tin về cách tính chi phí lưu trữ, hãy xem Tìm hiểu cách tính kích thước lưu trữ .

Hoạt động

Người dùng thường hoàn thành các tác vụ phổ biến sau trong ứng dụng:

Tổng hoạt động ước tính của ứng dụng ví dụ trong Cloud Firestore cho ba tác vụ người dùng thông thường như sau:

  • Số lượt đọc: (5 * 10) + (30) = 80 lượt đọc/người dùng/ngày
  • Số lần ghi: (10 * 2) = 20 lần ghi/người dùng/ngày
  • Đầu ra mạng : (50 * 0,25KB) + (30 * 0,25KB) = 20KB/người dùng/ngày
  • Dung lượng lưu trữ : (20 * 0,75KB) = 15 KB/người dùng/ngày

Tổng mức sử dụng theo tác vụ của người dùng

Chọn từng nhiệm vụ của người dùng để xem mô tả đầy đủ và phân tích chi phí hoạt động, lưu trữ và kết nối mạng trong ứng dụng.

Xem danh sách trò chuyện

Màn hình chính của ứng dụng tải 25 cuộc trò chuyện gần đây nhất, phát sinh phí cho 25 lần đọc tài liệu. Giả sử rằng một người dùng đang hoạt động mở ứng dụng 5 lần mỗi ngày, tổng cộng 125 lượt đọc cho mỗi người dùng mỗi ngày. Tuy nhiên, các truy vấn hiệu quả hơn, như truy vấn trong ví dụ sau, có thể giảm tải này.

Trong ví dụ bên dưới, chúng tôi giới hạn truy vấn ở các cuộc trò chuyện mới bằng cách sử dụng dấu thời gian của mỗi lần tìm nạp thành công, được ứng dụng lưu trữ:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Giả sử có trung bình 10 cuộc trò chuyện được cập nhật mỗi lần người dùng kiểm tra ứng dụng. Truy vấn này chỉ phát sinh 10 lần đọc tài liệu.

Đọc tin nhắn trong cuộc trò chuyện

Người dùng nhấp vào chuỗi trò chuyện từ màn hình chính để xem các tin nhắn gần đây, tải 50 tin nhắn gần đây nhất trong lần tải đầu tiên.

Giả sử người dùng thông thường thực hiện hành động này 5 lần mỗi ngày (một lần cho mỗi lần họ mở màn hình chính), dẫn đến tổng số 250 lượt đọc cho mỗi người dùng mỗi ngày. Chúng tôi cũng có thể giới hạn truy vấn của mình ở các tin nhắn mới kể từ lần tìm nạp cuối cùng:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

Giả sử rằng người dùng nhận được khoảng 30 tin nhắn mỗi ngày trên tất cả các cuộc trò chuyện. Vì bạn đã giới hạn truy vấn để tìm nạp thư mới nên điều này có nghĩa là chỉ có 30 thư được truy xuất/ngày.

Gửi tin nhắn đến cuộc trò chuyện

Người dùng có thể gửi tin nhắn cho những người tham gia khác khi họ đang trò chuyện. Giả sử rằng một người dùng đang hoạt động gửi khoảng 10 tin nhắn mỗi ngày.

Mỗi tin nhắn đã gửi sẽ tạo ra hai lần ghi tài liệu: một ghi vào tập hợp con messages của cuộc trò chuyện và một ghi vào tài liệu chính của cuộc trò chuyện để cập nhật dấu thời gian lastUpdated và siêu dữ liệu khác.

Lưu ý rằng chi phí đọc những tin nhắn này đã được tính trong các hành trình khác nên tổng số bên dưới chỉ tính đến chi phí ghi này.

Mức sử dụng được tính phí cho các tác vụ của quản trị viên

Với tư cách là chủ sở hữu hoặc quản trị viên ứng dụng, bạn có thể muốn tạo báo cáo từ dữ liệu ứng dụng của mình. Ví dụ: bạn có thể muốn đếm số lượng tin nhắn được gửi bởi người dùng hàng ngày. Bạn có thể thực hiện việc này bằng cách tổng hợp count() của nhóm thu thập messages .

Đối với các truy vấn tổng hợp như count() , bạn sẽ bị tính phí một lần đọc tài liệu cho mỗi lô có tối đa 1.000 mục nhập chỉ mục khớp với truy vấn. Việc chạy tính năng tổng hợp hàng ngày này sẽ thêm các khoản phí hàng tháng sau:

Bé nhỏ
(50k lượt cài đặt)

Đối với 50.000 lượt cài đặt ứng dụng (5.000 DAU): 0,0009 USD/tháng

5.000 người dùng đang hoạt động * 10 tin nhắn mới cho mỗi người dùng = 50.000 tài liệu tin nhắn mới mỗi ngày

50.000 tài liệu được tính / 1.000 chỉ mục phù hợp cho mỗi lần đọc = 50 lần đọc

50 lượt đọc mỗi ngày * 30 ngày = 1.500 lượt đọc mỗi tháng

1.500 lượt đọc mỗi tháng * 0,06/100.000 giá đọc = 0,0009 USD mỗi tháng

Trung bình
(1 triệu lượt cài đặt)

Đối với 1.000.000 lượt cài đặt ứng dụng (100.000 Người dùng hoạt động hàng ngày): 0,018 USD/tháng

100.000 người dùng đang hoạt động * 10 tin nhắn mới cho mỗi người dùng = 1.000.000 tài liệu tin nhắn mới mỗi ngày

1.000.000 tài liệu được tính / 1.000 chỉ mục phù hợp cho mỗi lần đọc = 1.000 lần đọc

1.000 lượt đọc mỗi ngày * 30 ngày = 30.000 lượt đọc mỗi tháng

30.000 lượt đọc mỗi tháng * 0,06/100.000 giá đọc = 0,018 USD mỗi tháng

Lớn
(10 triệu lượt cài đặt)

Đối với 10.000.000 lượt cài đặt ứng dụng (1.000.000 Người dùng hoạt động hàng ngày): 0,18 USD

1.000.000 người dùng đang hoạt động * 10 tin nhắn mới cho mỗi người dùng = 10.000.000 tài liệu tin nhắn mới mỗi ngày

10.000.000 tài liệu được tính / 1.000 chỉ mục phù hợp cho mỗi lần đọc = 10.000 lần đọc

10.000 lượt đọc mỗi ngày * 30 ngày = 300.000 lượt đọc mỗi tháng

300.000 lượt đọc mỗi tháng * 0,06/100000 giá đọc = 0,18 USD mỗi tháng

Lợi ích đi kèm: Dịch vụ miễn phí cho ứng dụng của bạn

Mặc dù các hoạt động, bộ nhớ và băng thông mạng của Cloud Firestore đều được coi là mức sử dụng phải trả phí nhưng bạn cũng nhận được nhiều lợi ích khác mà không phải trả thêm phí. Hãy xem xét các dịch vụ miễn phí sau đây khi bạn so sánh Cloud Firestore với các tùy chọn cơ sở dữ liệu khác:

  • Quyền truy cập trực tiếp của khách hàng: Cloud Firestore được truy cập trực tiếp từ mã khách hàng của bạn bằng SDK gốc của chúng tôi. Điều này có nghĩa là bạn không cần xây dựng và chạy máy chủ API để kết nối máy khách di động của mình với cơ sở dữ liệu.
  • Cân bằng tải: Vì Cloud Firestore tự động thay đổi quy mô để hỗ trợ lưu lượng truy cập vào cơ sở dữ liệu của bạn nên bạn không cần phải chạy bộ cân bằng tải.
  • Thời gian hoạt động của máy chủ: Cơ sở dữ liệu Cloud Firestore hoạt động trên máy chủ Google Cloud, cung cấp hơn 99% thời gian hoạt động hàng tháng .
  • Xác thực: Xác thực người dùng không giới hạn một cách đơn giản và an toàn với Xác thực Firebase . Xác thực Firebase tích hợp trực tiếp với Cloud Firestore nên bạn không cần chạy dịch vụ xác thực của riêng mình.
  • Thông báo đẩy: Gửi tin nhắn và thông báo bằng Cloud Messaging .
  • Các sản phẩm Firebase khác: Tích hợp miễn phí các sản phẩm Firebase khác, bao gồm Thử nghiệm A/B, Analytics, Crashlytics, Giám sát hiệu suất và Cấu hình từ xa. Tìm hiểu thêm về các sản phẩm Firebase khácgiá của Firebase .