Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Zobacz przykład cenowy Cloud Firestore

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Użyj tego rzeczywistego przykładu podstawowej aplikacji do czatu, aby ocenić wykorzystanie i koszty Cloud Firestore. To nie jest dokładne oszacowanie, ale może pomóc Ci lepiej zrozumieć, jak rozliczane są opłaty za korzystanie z Cloud Firestore.

Przegląd: Koszty według poziomu użytkowania

Aby zilustrować typowe koszty, rozważ przykładową aplikację do czatu, w której użytkownicy mogą inicjować czaty z co najmniej dwoma uczestnikami. Użytkownicy mogą wyświetlać swoje aktywne czaty na liście, czytać wiadomości i wysyłać wiadomości. W tym przykładzie używamy cen dla wielu regionów Ameryki Północnej (w szczególności nam5 ).

Założenia

Rozważ następujące założenia dotyczące użytkowania i przechowywania danych:

  • Dzienni aktywni użytkownicy (DAU) to 10% wszystkich instalacji aplikacji. Możesz oszacować swoje dzienne koszty, korzystając z przybliżonego oszacowania dziennych aktywnych użytkowników (DAU). Są to użytkownicy, którzy aktywnie otwierają Twoją aplikację i korzystają z niej w danym dniu, co zazwyczaj stanowi niewielką część wszystkich instalacji aplikacji. W poniższych obliczeniach oszacowaliśmy DAU jako 10% całkowitej liczby instalacji aplikacji.
  • Rozmiary dokumentów są stosunkowo małe. Poniższa tabela zawiera podział rozmiaru dokumentu według typu.
  • Dane są przechowywane tylko przez trzy miesiące. Wiadomości w przykładowej aplikacji czatu są przechowywane tylko przez okres trzech miesięcy. Aby uwzględnić operacje usuwania, poniższe obliczenia pokazują codzienne usuwanie dla każdego codziennego zapisu.
  • Te szacunkowe koszty odzwierciedlają większość kosztów przykładowej aplikacji, ale nie wszystkie. Rozliczyliśmy większość kosztów aplikacji, obliczając operacje, przechowywanie użytkowników i wiadomości oraz ruch wychodzący dla najczęstszych zadań użytkownika opisanych w tym przewodniku. Jednak może być konieczne uwzględnienie dodatkowych kosztów, w zależności od struktury aplikacji i potrzeb dotyczących danych. Użyj tego przykładu, aby przeprowadzić obliczenia, ale zapoznaj się ze stroną z cennikiem, aby uzyskać dokładniejsze objaśnienia kosztów Cloud Firestore.

Aby zapoznać się z podziałem operacji według zadania użytkownika, zobacz sekcję Podział: rozliczane użycie według zadania użytkownika .

Mały
(50 tys. instalacji)

Za 50 000 instalacji aplikacji (5 000 aktywnych użytkowników dziennie): 12,14 USD/miesiąc

Koszty odczytu/zapisu
Całkowity koszt miesięczny = 11,10 USD/miesiąc
400 000 odczytów dziennie = 50 tys. bezpłatnych odczytów + (350 tys. odczytów po 0,06 tys. USD/100 tys.) = 3,5 * 0,06 USD
0,21 USD / dzień * 30 = 6,30 USD
Łącznie 100 000 zapisów dziennie = 20 tys. bezpłatnych zapisów + (80 tys. zapisów po 0,18 USD/100 tys.) = 0,8 * 0,18 USD
0,14 USD / dzień * 30 = 4,20 USD
Łącznie 100 000 usuwanych dziennie = 20 tys. bezpłatnych usunięć + (80 tys. usunięć po 0,02 USD/100 tys.) = 0,8 * 0,02 USD
0,02 USD / dzień * 30 = 0,60 USD
Koszty przechowywania/sieci
Całkowity koszt miesięczny = 1,04 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 5 tys. DAU = 100MB dziennego wyjścia * 30 = 3 GB miesięcznie ruchu wychodzącego z sieci
3 GB Bezkosztowe wyjście = Bezkosztowe 1
Dzienne przechowywanie wiadomości 15 KB / DAU + 3 KB pamięci / instalacja 2 = 45 KB pamięci / DAU * 5 tys. DAU = 225 MB dziennej pamięci / DAU * 30 = 6,75 GB miesięcznego wykorzystania pamięci
1 GB bezpłatnej przestrzeni dyskowej + (5,75 * 0,18 USD) = 1,04 USD / miesiąc

1 10 GB miesięcznego ruchu wychodzącego z sieci to bezpłatne dla Cloud Firestore.
2 Ponieważ zakładamy, że DAU stanowią 10% wszystkich instalacji aplikacji, ta liczba stanowi całkowitą liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Średni
(1 mln instalacji)

Za 1 000 000 instalacji aplikacji (100 000 aktywnych użytkowników dziennie): 292,02 USD/miesiąc

Koszty odczytu/zapisu
Całkowity koszt miesięczny = 261,90 USD/miesiąc
8 mln odczytów dziennie = 50 tys. bezpłatnych odczytów + (7,95 mln odczytów po 0,06 tys. USD/100 tys.) = 79,5 * 0,06 USD
4,77 USD / dzień * 30 = 143,10 USD
Łącznie 2 mln zapisów dziennie = 20 tys. bezpłatnych zapisów + (1,98 mln zapisów po 0,18 USD/100 tys.) = 19,8 * 0,18 USD
3,56 USD / dzień * 30 = 106,80 USD
Łącznie 2 mln usuwanych dziennie = 20 tys. usunięć bez kosztów + (1,98 mln usunięć po 0,02 USD/100 tys.) = 19,8 * 0,02 USD
0,40 USD / dzień * 30 = 12,00 USD
Koszty przechowywania/sieci
Całkowity koszt miesięczny = 30,12 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 100 tys. DAU = 2 GB dziennego wyjścia * 30 = 60 GB miesięcznie ruchu wychodzącego z sieci
10 GB bezpłatnego wyjścia + (50 GB wyjścia * 0,12 USD/GB) = 6,00 USD / miesiąc
Dzienne przechowywanie wiadomości 15 KB / DAU + 3 KB pamięci / instalacja 1 = 45KB pamięci / DAU * 100K DAU = 4,5 GB dziennej pamięci / DAU * 30 = 135 GB miesięcznego wykorzystania pamięci
1 GB bezpłatnej pamięci masowej + (134 GB * 0,18 USD/GB) = 24,12 USD / miesiąc

1 Ponieważ zakładamy, że DAU stanowią 10% wszystkich instalacji aplikacji, ta liczba stanowi całkowitą liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Wielki
(10 mln instalacji)

Za 10 000 000 instalacji aplikacji (1 000 000 aktywnych użytkowników dziennie): 2951,52

Koszty odczytu/zapisu
Całkowity koszt miesięczny = Razem: 2637,90 USD/miesiąc
Łącznie 80 mln odczytów dziennie = 50 tys. bezpłatnych odczytów + (79,95 mln odczytów przy 0,06 USD/100 tys.) = 799,5 * 0,06 USD
47,97 USD / dzień * 30 = 1439,10 USD
Łącznie 20 mln zapisów dziennie = 20 tys. bezpłatnych zapisów + (19,98 mln zapisów po 0,18 USD/100 tys.) = 199,8 * 0,18 USD
35,96 USD / dzień * 30 = 1078,80 USD
Łącznie 20 mln usuwanych dziennie = 20 tys. usunięć bez kosztów + (19,98 mln usunięć po 0,02 USD/100 tys.) = 199,8 * 0,02 USD
4,00 USD / dzień * 30 = 120,00 USD
Koszty przechowywania/sieci
Całkowity koszt miesięczny = 313,62 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 1 mln DAU = 20 GB dziennego wyjścia * 30 = 600 GB miesięcznie ruchu wychodzącego z sieci
10 GB bezpłatnego wyjścia + (590 GB wyjścia * 0,12 USD/GB) = 70,80 USD / miesiąc
Dzienne przechowywanie wiadomości 15 KB / DAU + 3 KB pamięci / instalacja 1 = 45 KB pamięci / DAU * 1 M DAU = 45 GB dziennej pamięci / DAU * 30 = 1350 GB miesięcznego wykorzystania pamięci
(1 GB bezpłatnej przestrzeni dyskowej) + (1349 GB * 0,18 USD/GB) = 242,82 USD / miesiąc

1 Ponieważ zakładamy, że DAU stanowią 10% wszystkich instalacji aplikacji, ta liczba stanowi całkowitą liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Wartą rozważenia zaletą modelu rozliczeniowego Cloud Firestore jest to, że płacisz tylko za to, z czego korzystasz. W rezultacie rachunek może rosnąć i zmniejszać się wraz z liczbą DAU.

Podział: rozliczane użycie według zadania użytkownika

W naszej przykładowej aplikacji do czatu struktura danych wygląda następująco:

  • users/{userId} — Rekordy użytkowników
  • groups/{groupId} — Rozmowy między 2 lub więcej użytkownikami
    • messages/{messageId} — Każda wiadomość na czacie.

Przechowywanie danych

Aby obliczyć koszty przechowywania danych aplikacji, zastosuj następujące założenia dotyczące rozmiarów dokumentów:

Kolekcja Rozmiar dokumentu (w transporcie) Rozmiar dokumentu (na dysku)*
użytkownicy 1 KB 3 KB
grupy 0,5 KB 1,5 KB
wiadomości 0,25 KB 0,75 KB

*To obliczenie rozmiaru obejmuje indeksy pól wiadomości, ale zakłada, że ​​indeksowanie treści wiadomości jest wyłączone.

Aplikacja przechowuje również tylko wiadomości nie starsze niż trzy miesiące, aby obniżyć koszty przechowywania.

Aby uzyskać więcej informacji na temat obliczania kosztów magazynu, zobacz Omówienie obliczeń rozmiaru magazynu .

Operacje

Użytkownicy zazwyczaj wykonują w aplikacji następujące typowe zadania:

  • Zobacz listę czatów: Użytkownicy otwierają ekran główny aplikacji i widzą listę czatów (grupowych i bezpośrednich) uporządkowanych według ostatniej opublikowanej wiadomości.
  • Czytaj wiadomości na czacie: Użytkownicy wybierają czaty z ekranu głównego i czytają ostatnie wiadomości z czatów.
  • Wyślij wiadomość na czacie: Użytkownicy wysyłają wiadomości na czacie (grupowym lub bezpośrednim).

Łączna szacunkowa liczba operacji przykładowej aplikacji w Cloud Firestore dla trzech typowych zadań użytkownika jest następująca:

  • Odczyty: (5 * 10) + (30) = 80 odczytów / użytkownik / dzień
  • Zapisy: (10 * 2) = 20 zapisów / użytkownik / dzień
  • Wyjście z sieci : (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB / użytkownik / dzień
  • Pamięć : (20 * 0,75 KB) = 15 KB / użytkownik / dzień

Całkowite wykorzystanie według zadania użytkownika

Wybierz każde zadanie użytkownika, aby zobaczyć pełny opis i podział kosztów operacji, przechowywania i sieci w aplikacji.

Zobacz listę czatów

Ekran główny aplikacji ładuje 25 ostatnich czatów, naliczając opłaty za 25 odczytów dokumentów. Załóżmy, że aktywny użytkownik otwiera aplikację 5 razy dziennie, co daje łącznie 125 odczytów na użytkownika każdego dnia. Jednak bardziej wydajne zapytania, takie jak w poniższym przykładzie, mogą zmniejszyć to obciążenie.

W poniższym przykładzie ograniczamy zapytanie do nowych czatów, używając znacznika czasu każdego pomyślnego pobrania, przechowywanego przez aplikację:

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

Załóżmy, że za każdym razem, gdy użytkownik sprawdza aplikację, jest średnio 10 zaktualizowanych czatów. To zapytanie pociąga za sobą tylko 10 odczytów dokumentu.

Czytaj wiadomości na czacie

Użytkownicy klikają wątki czatu na ekranie głównym, aby zobaczyć najnowsze wiadomości, ładując 50 najnowszych wiadomości podczas początkowego ładowania.

Załóżmy, że typowy użytkownik wykonuje tę czynność 5 razy dziennie (raz za każdym razem, gdy otwiera ekran główny), co daje łącznie 250 odczytów na użytkownika każdego dnia. Możemy również ograniczyć nasze zapytanie do nowych wiadomości od czasu ostatniego pobrania:

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

Załóżmy, że użytkownik otrzymuje około 30 wiadomości dziennie we wszystkich czatach. Ponieważ ograniczyłeś zapytanie do pobierania nowych wiadomości, przekłada się to na zaledwie 30 pobranych wiadomości dziennie.

Wyślij wiadomość na czacie

Użytkownicy mogą wysyłać wiadomości do innych uczestników, gdy są w czacie. Załóżmy, że aktywny użytkownik wysyła około 10 wiadomości dziennie.

Każda wysłana wiadomość spowoduje dwa zapisy dokumentu: jeden zapis do podkolekcji messages czatu i jeden zapis do dokumentu nadrzędnego czatu, aby zaktualizować znacznik czasu lastUpdated i inne metadane.

Pamiętaj, że koszt czytania tych wiadomości został uwzględniony w innych podróżach, więc poniższe sumy uwzględniają tylko ten koszt zapisu.

Zawarte korzyści: bezpłatne usługi dla Twojej aplikacji

Chociaż operacje, pamięć masowa i przepustowość sieci w Cloud Firestore są uważane za użytkowanie podlegające rozliczeniu, zyskujesz również wiele innych korzyści bez dodatkowych kosztów. Porównując Cloud Firestore z innymi opcjami baz danych, rozważ następujące bezpłatne usługi:

  • Bezpośredni dostęp klienta: dostęp do Cloud Firestore można uzyskać bezpośrednio z kodu klienta przy użyciu naszych natywnych pakietów SDK. Oznacza to, że nie musisz budować i uruchamiać serwera API, aby połączyć klientów mobilnych z bazą danych.
  • Równoważenie obciążenia: ponieważ Cloud Firestore skaluje się automatycznie w celu obsługi ruchu do Twojej bazy danych, nie musisz uruchamiać systemu równoważenia obciążenia.
  • Czas pracy serwera: bazy danych Cloud Firestore działają na serwerach Google Cloud, oferując ponad 99% miesięcznej dostępności .
  • Uwierzytelnianie: uwierzytelniaj nieograniczoną liczbę użytkowników w prosty i bezpieczny sposób dzięki Uwierzytelnianiu Firebase . Uwierzytelnianie Firebase integruje się bezpośrednio z Cloud Firestore, więc nie musisz uruchamiać własnej usługi uwierzytelniania.
  • Powiadomienia push: wysyłaj wiadomości i powiadomienia za pomocą Cloud Messaging .
  • Inne produkty Firebase: zintegruj bezpłatnie inne produkty Firebase, w tym testy A/B, Analytics, Crashlytics, monitorowanie wydajności i Zdalną konfigurację. Dowiedz się więcej o innych produktach Firebase i cenach Firebase .