Rozliczanie usługi Cloud Firestore

W tym dokumencie znajdziesz szczegółowe informacje o cenach Cloud Firestore.

Jeśli płacisz w walucie innej niż USD, obowiązują ceny podane w Twojej walucie na stronie kodów SKU dla usługi Cloud Platform.

Informacje o cenach

Jeśli korzystasz z Cloud Firestore, obciążamy Cię za:

  • Liczba dokumentów, które odczytujesz, zapisujesz i usuwasz.
  • Liczba odczytanych wpisów indeksu, aby zrealizować zapytanie. Więcej informacji o odczytach indeksu
  • Ilość miejsca na dane używanego przez bazę danych, w tym miejsce zajmowane przez metadane i indeksy.
  • Ilość wykorzystywanej przepustowości sieci.

Wykorzystanie miejsca na dane i przepustowości jest obliczane w gibibajtach (GiB), gdzie 1 GiB = 230 bajtów. Wszystkie opłaty są naliczane codziennie.

W sekcjach poniżej znajdziesz szczegółowe informacje o tym, jak naliczane są opłaty za korzystanie z Cloud Firestore.

Bezpłatny limit

Cloud Firestore oferuje bezpłatny limit, który umożliwia rozpoczęcie pracy bezpłatnie. Jeśli potrzebujesz większego limitu, musisz włączyć płatności w projekcie Google Cloud.

Limity są stosowane codziennie i resetowane około północy czasu pacyficznego.

W tabeli poniżej znajdziesz podsumowanie bezpłatnych limitów:

Poziom bezpłatny Limit
Przechowywane dane 1 GiB
Odczyty dokumentów 50 000 dziennie
Zapisy dokumentów 20 000 dziennie
Usunięcia dokumentu 20 000 dziennie
Przesyłanie danych na zewnątrz 10 GiB miesięcznie

Bezpłatne korzystanie nie obejmuje tych operacji i funkcji: Aby korzystać z tych funkcji, musisz włączyć płatności:

  • Usunięcia TTL
  • Dane odzyskiwania do określonego momentu
  • Utwórz kopię zapasową danych
  • Operacje przywracania
  • Operacje klonowania

Więcej informacji o tym, jak naliczane są opłaty za te funkcje, znajdziesz w artykule Ceny pamięci masowej.

Ceny w poszczególnych lokalizacjach

Aby wyświetlić ceny odczytu, zapisu, usuwania i przechowywania danych w każdej lokalizacji Cloud Firestore, zapoznaj się z cennikiem Google Cloud.

Jeśli płacisz w walucie innej niż USD, obowiązują ceny podane w Twojej walucie na stronie kodów SKU dla usługi Cloud Platform.

Brak bezpłatnego limitu dla baz danych z nazwami

Aby utworzyć bazę danych z nazwą (inną niż domyślna), musisz przejść na wyższy abonament projektu.

Tworzenie i usuwanie nazwanych baz danych nie wiąże się z żadnymi dodatkowymi kosztami, ale nie kwalifikują się one do bezpłatnego limitu. Zamiast tego będziemy pobierać opłaty za wykorzystanie tych nazwanych baz danych.

Odczytywanie, zapisywanie i usuwanie

Opłaty są naliczane za dokumenty i wpisy indeksu odczytane w celu przetworzenia zapytania. Opłata jest naliczana za każdy zapis i usunięcie dokumentu.

Opłaty za zapisy i usuwanie są proste. W przypadku operacji zapisu każda operacja set lub update jest liczona jako pojedyncza operacja zapisu.

Opłaty za operacje odczytu mają pewne niuanse, o których warto pamiętać. W kolejnych sekcjach szczegółowo wyjaśniamy te niuanse.

Odczyty wpisu indeksu

Opłata za 1 operację odczytu jest naliczana za każdą grupę maksymalnie 1000 pozycji indeksu odczytanych przez zapytanie, z wyjątkiem tych przypadków:

  • W przypadku zapytań o wyszukiwanie wektorowe metodą k-najbliższych sąsiadów opłata jest naliczana za 1 operację odczytu dla każdej grupy maksymalnie 100 tys. pozycji indeksu wektorowego kNN odczytanych przez zapytanie.

    Jeśli na przykład to zapytanie wyszukiwania wektorowego z limit: 5 zwraca 5 dokumentów i odczytuje 1550 pozycji indeksu wektorowego kNN, zostanie naliczona opłata za 5 operacji odczytu zwróconych dokumentów i 16 operacji odczytu pozycji indeksu:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • W przypadku zapytań, które mają maksymalnie 1 pole zakresu, nie są naliczane opłaty za odczytane wpisy indeksu.

    Na przykład to zapytanie zawiera 1 pole równości (age) i 1 pole zakresu (start_date), więc nie są naliczane opłaty za odczytane wpisy indeksu:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    To zapytanie zawiera 2 pola zakresu (agestart_date) i jest rozliczane za odczyty wpisów indeksu:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Pole, które występuje w klauzuli order by, jest uznawane za pole zakresu, gdy w zapytaniu występuje co najmniej 1 inne pole zakresu. Dlatego to zapytanie zawiera 2 pola zakresu (agestart_date) i jest rozliczane za odczyty wpisów indeksu:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    Pole __name__ jest zawsze traktowane jako pole zakresu, nawet jeśli jest używane tylko w filtrze równości. Dlatego to zapytanie zawiera 2 pola zakresu (age__name__) i jest rozliczane za odczyty wpisów indeksu:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

Zapytania agregujące

W przypadku zapytań zbiorczych, takich jak count(), sum()avg(), opłaty są naliczane za odczytane przez zapytanie wpisy indeksu, jak opisano powyżej. W przypadku zapytań zbiorczych, które odczytują 0 wpisów indeksu, obowiązuje minimalna opłata za 1 odczytany dokument.

Na przykład za count() operacje, które odczytują od 0 do 1000 pozycji indeksu, naliczana jest opłata za 1 odczytany dokument. W przypadku operacji count(), która odczytuje 1500 pozycji indeksu, naliczane są opłaty za 2 odczyty dokumentów.

Aby dowiedzieć się więcej o używanych indeksach i odczytywanych wpisach indeksu, skorzystaj z funkcji Wyjaśnienie zapytania.

Nasłuchiwanie wyników zapytania

Cloud Firestore umożliwia odsłuchiwanie wyników zapytania i otrzymywanie aktualizacji w czasie rzeczywistym, gdy wyniki zapytania się zmienią.

Gdy odsłuchujesz wyniki zapytania, opłata za odczyt jest naliczana za każdym razem, gdy dokument w zbiorze wyników zostanie dodany lub zaktualizowany. Opłata za odczyt jest też naliczana, gdy dokument zostanie usunięty z zestawu wyników, ponieważ uległ zmianie. (W przeciwieństwie do tego, gdy dokument zostanie usunięty, nie naliczamy opłaty za odczyt).

Rozliczanie słuchaczy w pakietach SDK na urządzenia mobilne i w internecie zależy też od tego, czy włączono trwałość offline:

  • Jeśli trwałość offline jest włączona, a odbiornik jest odłączony przez ponad 30 minut (np. gdy użytkownik przejdzie w tryb offline), opłata za odczytane dokumenty i wpisy indeksu zostanie naliczona tak, jakby zostało wysłane nowe zapytanie.

  • Jeśli trwałość offline jest wyłączona, opłaty za odczytane dokumenty i wpisy indeksu będą naliczane tak, jakby za każdym razem, gdy odbiornik rozłącza się i ponownie łączy, wysyłane było nowe zapytanie.

Zarządzanie dużymi zbiorami wyników

Cloud Firestore ma kilka funkcji, które pomagają zarządzać zapytaniami zwracającymi dużą liczbę wyników:

  • Kursory, które umożliwiają wznowienie długotrwałego zapytania.
  • tokeny strony, które pomagają stronicować wyniki zapytania;
  • Limity określające liczbę wyników do pobrania.
  • Przesunięcia, które umożliwiają pominięcie określonej liczby dokumentów.

Korzystanie z kursorów, tokenów stron i limitów nie wiąże się z dodatkowymi kosztami. Te funkcje mogą Ci pomóc zaoszczędzić pieniądze, ponieważ umożliwiają czytanie tylko tych dokumentów, które są Ci potrzebne.

Jeśli jednak wyślesz zapytanie zawierające przesunięcie, opłata za odczyt zostanie naliczona za każdy pominięty dokument. Jeśli na przykład zapytanie używa przesunięcia 10 i zwraca 1 dokument, opłata zostanie naliczona za 11 odczytów. Ze względu na ten dodatkowy koszt w miarę możliwości używaj kursorów zamiast przesunięć.

Zapytania inne niż odczyty dokumentów

W przypadku zapytań innych niż odczyty dokumentów, np. prośby o listę identyfikatorów kolekcji, opłata jest naliczana za 1 odczytany dokument. Jeśli pobranie pełnego zestawu wyników wymaga więcej niż 1 żądania (np. w przypadku korzystania z paginacji), opłata jest naliczana za każde żądanie.

Minimalna opłata za zapytania

Za każde zapytanie, które wykonujesz, naliczana jest minimalna opłata za odczyt 1 dokumentu, nawet jeśli zapytanie nie zwraca żadnych wyników.

Cloud Firestore Security Rules

W przypadku bibliotek klienta na urządzenia mobilne i do przeglądarek, jeśli Twoja funkcja Cloud Firestore Security Rules używa exists(), get() lub getAfter() do odczytywania co najmniej jednego dokumentu z bazy danych, naliczamy opłaty za dodatkowe odczyty w ten sposób:

  • Opłaty są naliczane za odczyty niezbędne do oceny Cloud Firestore Security Rules.

    Jeśli na przykład reguły odwołują się do 3 dokumentów, ale Cloud Firestore musi przeczytać tylko 2 z nich, aby je ocenić, opłata zostanie naliczona za 2 dodatkowe odczyty dokumentów zależnych.

    Opłata za odczyt dokumentu zależnego jest naliczana tylko raz, nawet jeśli reguły odwołują się do niego więcej niż raz.

  • Opłata za ocenę reguły jest naliczana tylko raz na żądanie.

    Dzięki temu odczytanie wielu dokumentów może być tańsze niż odczytywanie ich pojedynczo, ponieważ wymaga mniejszej liczby żądań.

  • Gdy odsłuchujesz wyniki zapytania, opłata za ocenę reguły jest naliczana we wszystkich tych przypadkach:

    • Gdy wysyłasz zapytanie.
    • Za każdym razem, gdy wyniki zapytania są aktualizowane.
    • Za każdym razem, gdy urządzenie użytkownika przechodzi w tryb offline, a potem ponownie łączy się z siecią.
    • Za każdym razem, gdy zaktualizujesz reguły.
    • za każdym razem, gdy zaktualizujesz dokumenty zależne w swoich regułach;

Rozmiar pamięci masowej bazy danych

Opłaty są naliczane za ilość danych przechowywanych w Cloud Firestore, w tym za narzut związany z przechowywaniem. Wielkość narzutu obejmuje metadane, automatyczne indeksy i indeksy złożone.

Każdy dokument przechowywany w Cloud Firestore wymaga tych metadanych:

  • Identyfikator dokumentu, w tym identyfikator kolekcji i nazwa dokumentu.
  • Nazwa i wartość każdego pola. Ponieważ Cloud Firestore nie ma schematu, nazwa każdego pola w dokumencie musi być przechowywana z wartością pola.
  • Wszystkie indeksy pojedynczego pola i złożone, które odwołują się do dokumentu. Każdy wpis indeksu zawiera identyfikator kolekcji, dowolną liczbę wartości pól (w zależności od definicji indeksu) oraz nazwę dokumentu.

Koszty miejsca na dane są podawane w GiB/miesiąc i obliczane codziennie. Cloud Firestorecodziennie mierzy rozmiar bazy danych. W ciągu miesiąca te punkty próbkowania są uśredniane w celu obliczenia rozmiaru miejsca na dane w bazie danych. Ta średnia wartość jest mnożona przez cenę jednostkową miejsca na dane (GiB-miesiąc).

Dowiedz się, jak obliczamy miejsce na dane Cloud Firestore w sekcji Obliczanie rozmiaru miejsca na dane.

Dane odzyskiwania do określonego momentu

Jeśli włączysz odzyskiwanie do określonego momentu, opłaty będą naliczane za przechowywanie danych PITR. Większość klientów stwierdzi, że ogólny koszt przechowywania danych PiTR jest podobny do kosztu przechowywania bazy danych.

Koszty miejsca na dane w przypadku przywracania do punktu w czasie są podawane w GiB/miesiąc i obliczane codziennie. Cloud Firestore codziennie mierzy rozmiar bazy danych. W ciągu miesiąca te punkty próbkowania są uśredniane w celu obliczenia rozmiaru miejsca na dane w bazie danych. Ta średnia wartość jest mnożona przez cenę jednostkową PITR (GiB-miesiąc).

Jeśli na przykład średni rozmiar bazy danych w ciągu miesiąca wynosi 1 GB, a odzyskiwanie do określonego momentu jest włączone przez cały miesiąc, rozmiar danych PITR podlegających rozliczeniu również wynosi 1 GB.

Minimalne rozliczenie: możesz zostać obciążony(-a) kosztem 1 dnia przechowywania danych w ramach odzyskiwania do określonego momentu, nawet jeśli wyłączysz tę funkcję w ciągu 1 dnia od jej włączenia.

Operacje tworzenia kopii zapasowych i przywracania danych

Jeśli włączysz kopie zapasowe, za pamięć masową kopii zapasowych bazy danych będą naliczane opłaty. Rozmiar miejsca na kopię zapasową jest równy rozmiarowi miejsca na bazę danych w momencie tworzenia kopii zapasowej.

Koszty miejsca na kopie zapasowe są podawane w GiB/miesiąc. W okresie miesiąca obliczana jest też średnia liczba dni, przez które każda kopia zapasowa jest przechowywana. Koszt każdej kopii zapasowej jest obliczany na podstawie rozmiaru miejsca na dane zajmowanego przez kopię zapasową pomnożonego przez proporcję miesiąca, w której kopia zapasowa jest przechowywana, pomnożoną przez cenę jednostkową. Granice dni są określane na potrzeby rozliczeń według strefy czasowej America/Los_Angeles.

Gdy wykonujesz operację przywracania, Cloud Firestore mierzy rozmiar kopii zapasowej na potrzeby tej operacji. Rozmiar kopii zapasowej jest mnożony przez cenę jednostkową operacji przywracania (GiB).

Wyjaśnienie zapytania

Korzystanie z wyjaśnienia zapytania do Firestore wiąże się z opłatami.

Gdy zapytanie jest wyjaśniane za pomocą opcji domyślnej, nie są wykonywane żadne operacje odczytu indeksu. Niezależnie od złożoności zapytania naliczana jest opłata za 1 operację odczytu.

Gdy zapytanie jest objaśniane za pomocą opcji analizy, wykonywane są operacje indeksowania i odczytu, więc opłata za zapytanie jest naliczana jak zwykle. Za aktywność związaną z wyjaśnianiem i analizowaniem nie są naliczane żadne dodatkowe opłaty. Obowiązuje tylko zwykła opłata za wykonywane zapytanie.

Przepustowość sieci

Opłaty są naliczane za przepustowość sieci wykorzystywaną przez Twoje żądania Cloud Firestore, jak pokazano w sekcjach poniżej. Koszt przepustowości sieci w przypadku żądania Cloud Firestore zależy od rozmiaru odpowiedzi na żądanie, lokalizacji bazy danych Cloud Firestore i miejsca docelowego odpowiedzi.

Cloud Firestore oblicza rozmiar odpowiedzi na podstawie formatu serializowanej wiadomości. Obciążenie protokołu, np. obciążenie protokołu SSL, nie jest wliczane do wykorzystania przepustowości sieci. Odrzucone przez Cloud Firestore Security Rules żądania nie są wliczane do wykorzystania przepustowości sieci.

Aby dowiedzieć się, ile wykorzystano przepustowości sieci, możesz wyeksportować dane rozliczeniowe do pliku w konsoli Google Cloud.

Ogólne ceny sieci

W przypadku żądań pochodzących z Google Cloud Platform (np. z aplikacji działającej w Google Compute Engine) opłaty są naliczane w ten sposób:

Typ ruchu Cena
Przesyłanie danych przychodzących Bezpłatny
Przesyłanie danych w regionie Bezpłatny
Przesyłanie danych między regionami w tym samym regionie Bezpłatny
Przesyłanie danych między regionami w Stanach Zjednoczonych (za GiB) 0,01 USD (pierwsze 10 GiB miesięcznie jest bezpłatne)
Przesyłanie danych między regionami (z wyłączeniem ruchu między regionami w USA) Ceny wychodzącego transferu danych internetowych w Google Cloud Platform

Jeśli płacisz w walucie innej niż USD, obowiązują ceny podane w Twojej walucie na stronie kodów SKU dla usługi Cloud Platform.

Cloud Firestore podlega też dodatkowym opłatom za ruch wychodzący z internetu w przypadku:

  • Google Cloud żądań między regionami, z wyłączeniem ruchu między regionami w Stanach Zjednoczonych
  • Żądania spoza Google Cloud (np. z urządzenia mobilnego użytkownika)

Zobacz Google Cloudceny za ruch wychodzący z internetu.

Zobacz przykład ceny

Aby zobaczyć, jak Cloud Firestorekoszty rozliczeniowe są naliczane w przykładowej aplikacji w świecie rzeczywistym, zapoznaj się z Cloud Firestoreprzykładem rozliczeń.

Zarządzanie wydatkami

Aby uniknąć niespodziewanych opłat na rachunku, ustaw miesięczne budżety i alerty w konsoli rozliczeniowej Google Cloud.

Aby monitorować wykorzystanie Cloud Firestore, otwórz kartę Cloud Firestore Wykorzystanie w konsoli Firebase. Na panelu możesz sprawdzić wykorzystanie w różnych okresach.