Korzystanie i limity

Z tego przewodnika dowiesz się więcej o limitach Cloud Firestore. Znajdziesz w nim też cennik Cloud Firestore Pricing, w którym szczegółowo wyjaśniono koszty Cloud Firestore i opisano kwestie, na które należy zwrócić uwagę.

Monitorowanie wykorzystania

Aby monitorować wykorzystanie Cloud Firestore, otwórz kartę Cloud Firestore Wykorzystanie w konsoli Firebase. Użyj panelu, aby ocenić wykorzystanie w różnych okresach.

Szczegółowe informacje o wykorzystaniu w Google Cloud konsoli

Gdy tworzysz projekt w Firebase, tworzysz też projekt Google Cloud. Na stronach Cloud Firestore Limity interfejsu API i App Engine Limity w konsoli Google Cloud możesz śledzić wykorzystanie Cloud Firestore i informacje o limitach.

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 podsumowano bezpłatne limity:

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

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

  • Usunięcia TTL
  • Dane PITR
  • Utwórz kopię zapasową danych
  • Operacje przywracania
  • Operacje klonowania

Więcej informacji o rozliczaniu tych funkcji znajdziesz w cenniku pamięci masowej.

Limity standardowe

W tabelach poniżej znajdziesz limity obowiązujące w Cloud Firestore. O ile nie zaznaczono inaczej, są to limity stałe.

Bazy danych

Limit Szczegóły
Maksymalna liczba baz danych na projekt

100

Możesz poprosić o zwiększenie tego limitu , kontaktując się z zespołem pomocy.

Maksymalna liczba baz danych z kluczami szyfrowania zarządzanymi przez klienta (CMEK) na projekt

0

Domyślnie limit wynosi 0, ponieważ ta funkcja jest dostępna tylko dla użytkowników z listy dozwolonych. Możesz poprosić o zwiększenie limitu, wypełniając formularz prośby o dostęp do CMEK.

Kolekcje, dokumenty i pola

Limit Szczegóły
Ograniczenia dotyczące identyfikatorów kolekcji
  • Muszą to być prawidłowe znaki UTF-8.
  • Nie mogą być dłuższe niż 1500 bajtów.
  • Nie mogą zawierać ukośnika (/).
  • Nie mogą składać się wyłącznie z pojedynczej kropki (.) ani podwójnych kropek (..).
  • Nie mogą pasować do wyrażenia regularnego __.*__.
Maksymalna głębokość podkolekcji 100
Ograniczenia dotyczące identyfikatorów dokumentów
  • Muszą to być prawidłowe znaki UTF-8.
  • Nie mogą być dłuższe niż 1500 bajtów.
  • Nie mogą zawierać ukośnika (/).
  • Nie mogą składać się wyłącznie z pojedynczej kropki (.) ani podwójnych kropek (..).
  • Nie mogą pasować do wyrażenia regularnego __.*__.
  • Jeśli importujesz encje Datastore do bazy danych Firestore, numeryczne identyfikatory 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
  • Muszą to być prawidłowe znaki UTF-8.
  • Nie mogą pasować do wyrażenia regularnego __.*__.
Maksymalny rozmiar nazwy pola 1500 bajtów
Ograniczenia dotyczące ścieżek pól
  • Nazwy pól muszą być oddzielone pojedynczą kropką (.)
  • Można je przekazywać jako ciąg segmentów rozdzielonych kropkami (.), gdzie każdy segment jest prostą nazwą pola lub nazwą pola w cudzysłowie (zdefiniowaną poniżej).
Prosta nazwa pola to nazwa, która spełnia wszystkie te warunki:
  • Zawiera tylko znaki a-z, A-Z, 0-9, i podkreślenie (_).
  • Nie zaczyna się od 0-9.
Nazwa pola w cudzysłowie zaczyna się i kończy znakiem grawisu (`). Na przykład foo.`x&y` odnosi się do pola x&y zagnieżdżonego w polu foo. Aby utworzyć nazwę pola ze znakiem grawisu, poprzedź go znakiem ukośnika odwrotnego (\). Aby uniknąć nazw pól w cudzysłowie, możesz przekazać ścieżkę pola jako obiekt FieldPath (np. zobacz FieldPath w JavaScript).
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

Pola mapy i tablicy dodają 1 poziom do ogólnej głębokości obiektu. Na przykład ten obiekt ma łączną głębokość 3 poziomów:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Zapisy i transakcje

Oprócz tych limitów warto też zapoznać się ze sprawdzonymi metodami projektowania na dużą skalę.

Limit Szczegóły
Maksymalny rozmiar żądania do interfejsu API 10 MiB
Limit czasu na transakcję 270 sekund z 60-sekundowym czasem wygaśnięcia bezczynności
Maksymalna liczba przekształceń pól, które można wykonać w jednym dokumencie w ramach operacji Commit lub transakcji 500

Indeksy

Obowiązują te limity dotyczące indeksów pojedynczych pól i indeksów złożonych:

Limit Szczegóły
Maksymalna liczba indeksów złożonych w bazie danych
Maksymalna liczba konfiguracji pojedynczych pól w bazie danych

Konfiguracja na poziomie pola może zawierać wiele konfiguracji tego samego pola. Na przykład, wykluczenie indeksowania pojedynczego pola i zasada TTL w tym samym polu są liczone jako 1 konfiguracja pola w ramach limitu.

Maksymalna liczba wpisów indeksu dla każdego dokumentu

40 000

Liczba wpisów indeksu to suma tych wartości dla dokumentu:

  • liczba wpisów indeksu pojedynczego pola,
  • liczba wpisów indeksu złożonego.

Aby dowiedzieć się, jak Cloud Firestore przekształca dokument i zestaw 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 indeksu

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 indeksu dokumentu

8 MiB

Łączny rozmiar to suma tych wartości dla dokumentu:

  • suma rozmiarów wpisów indeksu pojedynczego pola dokumentu,
  • suma rozmiarów wpisów indeksu złożonego dokumentu.
  • Maksymalny rozmiar wartości indeksowanego pola

    1500 bajtów

    Wartości pól przekraczające 1500 bajtów są obcinane. Zapytania dotyczące obciętych wartości pól mogą zwracać niespójne wyniki.

    Czas życia danych (TTL)

    Limit Szczegóły
    Maksymalna liczba konfiguracji pojedynczych pól w bazie danych

    Konfiguracja na poziomie pola może zawierać wiele konfiguracji tego samego pola. Na przykład, wykluczenie indeksowania pojedynczego pola i zasada TTL w tym samym polu są liczone jako 1 konfiguracja pola w ramach limitu.

    Eksport/Import

    Obowiązują te limity dotyczące zarządzanych operacji importowania i eksportowania:

    Limit Szczegóły
    Maksymalna łączna liczba żądań eksportu i importu dozwolonych na minutę w projekcie 20
    Maksymalna liczba jednoczesnych eksportów i importów 50
    Maksymalna liczba filtrów identyfikatorów kolekcji w żądaniach eksportu i importu 100

    Reguły zabezpieczeń

    Limit Szczegóły
    Maksymalna liczba wywołań exists(), get() i getAfter() na żądanie
    • 10 w przypadku żądań dotyczących pojedynczych dokumentów i zapytań.
    • 20 w przypadku odczytów wielu dokumentów, transakcji, i zapisów zbiorczych. Poprzedni limit 10 obowiązuje też w przypadku każdej operacji.

      Załóżmy na przykład, że tworzysz zbiorcze żądanie zapisu z 3 operacjami zapisu, a reguły zabezpieczeń używają 2 wywołań dostępu do dokumentu aby zweryfikować każdy zapis. W takim przypadku każdy zapis wykorzystuje 2 z 10 wywołań dostępu, a zbiorcze żądanie zapisu wykorzystuje 6 z 20 wywołań dostępu.

    Przekroczenie któregokolwiek z tych limitów spowoduje wyświetlenie błędu odmowy dostępu.

    Niektóre wywołania dostępu do dokumentu mogą być buforowane, i buforowane wywołania nie są wliczane do limitów.

    Maksymalna głębokość zagnieżdżonego stwierdzenia match 10
    Maksymalna długość ścieżki w segmentach ścieżki dozwolona w zbiorze zagnieżdżonych match stwierdzeń 100
    Maksymalna liczba zmiennych przechwytywania ścieżki dozwolona w zbiorze zagnieżdżonych match stwierdzeń 20
    Maksymalna głębokość wywołania funkcji 20
    Maksymalna liczba argumentów funkcji 7
    Maksymalna liczba powiązań zmiennych let na funkcję 10
    Maksymalna liczba rekurencyjnych lub cyklicznych wywołań funkcji 0 (niedozwolone)
    Maksymalna liczba wyrażeń ocenianych na żądanie 1000
    Maksymalny rozmiar zbioru reguł Zbiory reguł muszą spełniać 2 limity rozmiaru:
    • Limit 256 KB na rozmiar tekstu źródłowego zbioru reguł opublikowanego w konsoli Firebase lub w interfejsie wiersza poleceń za pomocą firebase deploy.
    • Limit 250 KB na rozmiar skompilowanego zbioru reguł, który powstaje gdy Firebase przetwarza źródło i aktywuje je w backendzie.

    Zarządzanie wydatkami

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

    Ustawianie budżetu miesięcznego

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

    Aby ustawić budżet, otwórz sekcję Płatności w konsoli Google Cloud i utwórz budżet na koncie Cloud Billing. Możesz użyć domyślnych ustawień alertów lub zmodyfikować je tak, aby powiadomienia były wysyłane przy różnych procentach budżetu miesięcznego.

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