Wykorzystanie i limity

Ten przewodnik zawiera informacje o limitach Cloud Firestore. Cennik Cloud Firestore zawiera pełne, szczegółowe omówienie kosztów Cloud Firestore oraz kwestie, na które trzeba uważać.

Monitorowanie użytkowania

Aby monitorować wykorzystanie Cloud Firestore, otwórz kartę Użycie Cloud Firestore w konsoli Firebase. Używaj panelu do mierzenia wykorzystania w różnych okresach.

Szczegółowe informacje o wykorzystaniu w konsoli Google Cloud

Tworząc projekt Firebase, tworzysz też projekt Google Cloud. Informacje o wykorzystaniu i limitach Cloud Firestore znajdziesz na stronach Limity interfejsu Cloud Firestore API i Limity App Engine w konsoli Google Cloud.

Bezpłatny limit

Cloud Firestore oferuje bezpłatny limit, dzięki któremu możesz rozpocząć pracę z bazą danych (default) bez opłat. Kwoty bezpłatnych limitów są wymienione poniżej. 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.

Do bezpłatnego limitu kwalifikuje się tylko baza danych (default).

Poziom bezpłatny Limit
Przechowywane dane 1 GiB
Odczyty dokumentów 50 000 na dzień
Zapisy dokumentów 20 000 na dzień
Usunięcia dokumentu 20 000 na dzień
Wychodzące przesyłanie danych 10 GiB miesięcznie

Wymienione niżej operacje i funkcje nie są objęte bezpłatnym wykorzystaniem. Aby korzystać z tych funkcji, musisz włączyć płatności:

  • Użycie nazwanych (innych niż domyślne) baz danych
  • Usunięcia TTL
  • Dane PITR
  • Utwórz kopię zapasową danych
  • Operacje przywracania

Więcej informacji o opłatach za te funkcje znajdziesz w artykule Cennik miejsca na dane.

Limity standardowe

W tabelach poniżej znajdziesz limity dotyczące Cloud Firestore. Są to sztywne limity, o ile nie zaznaczono inaczej.

Bazy danych

Limit Szczegóły
Maksymalna liczba baz danych na projekt

100

Aby poprosić o zwiększenie tego limitu, skontaktuj się z zespołem pomocy.

Kolekcje, dokumenty i pola

Limit Szczegóły
Ograniczenia dotyczące identyfikatorów kolekcji
  • Wymagane są prawidłowe znaki UTF-8
  • Nie może być dłuższy niż 1500 bajtów
  • Nie może zawierać ukośnika wiodącego (/)
  • Nie może składać się wyłącznie z jednej kropki (.) ani podwójnych kropek (..)
  • Nie pasuje do wyrażenia regularnego __.*__
Maksymalna głębokość kolekcji podrzędnych 100
Ograniczenia dotyczące identyfikatorów dokumentów
  • Wymagane są prawidłowe znaki UTF-8
  • Nie może być dłuższy niż 1500 bajtów
  • Nie może zawierać ukośnika wiodącego (/)
  • Nie może składać się wyłącznie z jednej kropki (.) ani podwójnych kropek (..)
  • Nie pasuje do wyrażenia regularnego __.*__
  • Jeśli zaimportujesz encje Datastore do bazy danych Firestore, identyfikatory liczbowe encji są udostępniane jako __id[0-9]+__
Maksymalny rozmiar nazwy dokumentu 6 KiB
Maksymalny rozmiar dokumentu 1 MiB (1 048 576 bajtów)
Ograniczenia dotyczące nazw pól Wymagane są prawidłowe znaki UTF-8
Maksymalny rozmiar nazwy pola 1500 bajtów
Ograniczenia na ścieżkach pól
  • Nazwy pól muszą być rozdzielone jedną kropką (.)
  • Można ją przekazywać jako ciąg segmentów rozdzielonych kropką (.), w których każdy segment jest zwykłą nazwą pola lub nazwą pola ujętego w cudzysłów (zdefiniowaną poniżej).
Prosta nazwa pola to taka, w której są spełnione wszystkie te warunki:
  • Zawiera tylko znaki a-z, A-Z, 0-9 i podkreślenia (_)
  • Nie zaczyna się od 0-9
Nazwa pola cytowanego zaczyna się i kończy znakiem grawisu (`). Na przykład foo.`x&y` odnosi się do pola x&y umieszczonego w polu foo. Aby utworzyć nazwę pola zawierającą znak grawisu, zastąp go znakiem ukośnika lewego (\). Dla wygody możesz uniknąć nazw pól w cudzysłowach, przekazując ścieżkę pola jako obiekt FieldPath (np. zobacz JavaScript FieldPath).
Maksymalny rozmiar ścieżki pola 1500 bajtów
Maksymalny rozmiar wartości pola 1 MiB–89 bajtów (1 048 487 bajtów)
Maksymalna głębokość pól w mapie lub tablicy 20

Zapisy i transakcje

Oprócz tych limitów zapoznaj się też ze sprawdzonymi metodami projektowania pod kątem skalowania.

Limit Szczegóły
Maksymalny rozmiar żądania do interfejsu API 10 MiB
Limit czasu transakcji 270 sekund, przy czym czas bezczynności wynosi 60 sekund

Indeksy

W przypadku indeksów z jednym polem i indeksów złożonych obowiązują te limity:

Limit Szczegóły
Maksymalna liczba indeksów złożonych dla bazy danych
Maksymalna liczba konfiguracji z jednym polem dla bazy danych

Konfiguracja na poziomie jednego pola może zawierać wiele konfiguracji tego samego pola. Na przykład wykluczenie indeksowania pojedynczego pola i zasada TTL w tym samym polu są wliczane jako 1 konfiguracja pola i zbliżają się do limitu.

Maksymalna liczba wpisów w indeksie dla każdego dokumentu

40 000

Liczba wpisów w indeksie to suma następujących wartości dokumentu:

  • Liczba wpisów indeksu z jednym polem
  • Liczba wpisów indeksu złożonego

Aby dowiedzieć się, jak Cloud Firestore przekształca dokument i zbiór indeksów w wpisy indeksu, zapoznaj się z tym przykładem liczby wpisów indeksu.

Maksymalna liczba pól w indeksie złożonym 100
Maksymalny rozmiar wpisu w indeksie

7,5 KiB

Aby dowiedzieć się, jak Cloud Firestore oblicza rozmiar wpisu indeksu, zapoznaj się z informacjami o rozmiarze wpisu indeksu.

Maksymalna suma rozmiarów wpisów w indeksie dokumentu

8 MiB

Łączny rozmiar dokumentu to suma następujących elementów:

  • Suma rozmiaru wpisów indeksu z jednym polem w dokumencie
  • Suma rozmiaru wpisów indeksu złożonego dokumentu
  • Maksymalny rozmiar wartości zindeksowanego pola

    1500 bajtów

    Wartości pól większe niż 1500 bajtów są obcinane. Zapytania obejmujące obcięte wartości pól mogą zwracać niespójne wyniki.

    Czas życia danych (TTL)

    Limit Szczegóły
    Maksymalna liczba konfiguracji z jednym polem dla bazy danych

    Konfiguracja na poziomie jednego pola może zawierać wiele konfiguracji tego samego pola. Na przykład wykluczenie indeksowania pojedynczego pola i zasada TTL w tym samym polu są wliczane jako 1 konfiguracja pola i zbliżają się do limitu.

    Eksport/Import

    W przypadku zarządzanych operacji importowania i eksportowania obowiązują następujące limity:

    Limit Szczegóły
    Maksymalna łączna liczba żądań eksportu i importu dla projektu na minutę 20
    Maksymalna liczba równoczesnych eksportów i importów 50
    Maksymalna liczba filtrów identyfikatorów kolekcji na potrzeby żądań eksportu i importu 100

    Reguły zabezpieczeń

    Limit Szczegóły
    Maksymalna liczba wywołań exists(), get() i getAfter() na żądanie
    • 10 w przypadku żądań pojedynczych dokumentów i zapytań.
    • 20 – odczyty, transakcje i zapisy wsadowe w wielu dokumentach. Do każdej operacji ma też zastosowanie poprzedni limit 10.

      Załóżmy na przykład, że tworzysz wsadowe żądanie zapisu z 3 operacjami zapisu i że Twoje reguły zabezpieczeń używają 2 wywołań dostępu do dokumentu do weryfikacji każdego zapisu. W tym przypadku każdy zapis używa 2 z 10 wywołań dostępu, a wsadowe żądanie zapisu używa 6 z 20 wywołań dostępu.

    Przekroczenie dowolnego z limitów skutkuje błędem braku uprawnień.

    Niektóre wywołania dostępu do dokumentu mogą być przechowywane w pamięci podręcznej, a wywołania z pamięci podręcznej nie wliczają się do limitów.

    Maksymalna głębokość zagnieżdżonej instrukcji match 10
    Maksymalna długość ścieżki w segmentach ścieżki dozwolona w zbiorze zagnieżdżonych instrukcji match 100
    Maksymalna liczba zmiennych przechwytywania ścieżki dozwolona w zestawie zagnieżdżonych instrukcji match 20
    Maksymalna głębokość wywołania funkcji 20
    Maksymalna liczba argumentów funkcji 7
    Maksymalna liczba powiązań zmiennych na funkcję (let) 10
    Maksymalna liczba rekurencyjnych lub cyklicznych wywołań funkcji 0 (niedozwolone)
    Maksymalna liczba wyrażeń ocenianych na żądanie 1000
    Maksymalny rozmiar zestawu reguł Zestawy reguł muszą przestrzegać 2 limitów rozmiarów:
    • Limit 256 KB dotyczący rozmiaru źródła tekstu zbioru reguł opublikowanego z poziomu konsoli Firebase lub z poziomu interfejsu wiersza poleceń za pomocą interfejsu firebase deploy.
    • Limit 250 KB odnoszący się do skompilowanego zestawu reguł, który pojawia się, gdy Firebase przetworzy źródło i aktywuje je w backendzie.

    Zarządzanie wydatkami

    Aby uniknąć nieoczekiwanych opłat na rachunku, ustaw budżety miesięczne i alerty.

    Ustaw budżet miesięczny

    Aby śledzić koszty Cloud Firestore, utwórz w konsoli Google Cloud budżet miesięczny. Budżety nie ograniczają wykorzystania, ale możesz ustawić alerty, które będą powiadamiać Cię, gdy zbliżasz się do planowanych kosztów na dany miesiąc lub je przekroczysz.

    Aby ustawić budżet, otwórz sekcję Płatności w konsoli Google Cloud i utwórz budżet dla swojego konta rozliczeniowego Cloud. Możesz użyć domyślnych ustawień alertów lub zmodyfikować alerty tak, aby wysyłały powiadomienia w różnych procentach miesięcznego budżetu.

    Dowiedz się więcej o konfigurowaniu alertów dotyczących budżetów.