Korzystanie i limity

Z tego przewodnika dowiesz się, jakie są limity Cloud Firestore. Szczegółowe informacje o kosztach Cloud Firestore, w tym o tym, na co zwracać uwagę, znajdziesz w artykule Ceny Cloud Firestore.

Monitorowanie wykorzystania

Aby monitorować wykorzystanie Cloud Firestore w konsoli Firebase, otwórz kartę Bazy danych i miejsce na dane > Firestore > Użycie. Za pomocą tego panelu możesz ocenić wykorzystanie w różnych okresach.

Szczegółowe informacje o wykorzystaniu w konsoli Google Cloud

Gdy tworzysz projekt w Firebase, tworzysz też projekt Google Cloud. Strony Limity interfejsu API Cloud Firestore i Limity App Engine w konsoli Google Cloud śledzą informacje o wykorzystaniu i limitach Cloud Firestore.

Bezpłatny limit

Cloud Firestore oferuje bezpłatny limit, który pozwala rozpocząć korzystanie z usługi bez opłat. 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.

Tabela poniżej zawiera podsumowanie bezpłatnych limitów:

Poziom bezpłatny Limit
Przechowywane dane 1 GiB
Odczyty dokumentów 50 tys. 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 odzyskiwania do określonego momentu
  • Utwórz kopię zapasową danych
  • Operacje przywracania
  • Operacje klonowania

Więcej informacji o tym, jak te funkcje są rozliczane, znajdziesz w artykule Ceny miejsca na dane.

Limity standardowe

W tabelach poniżej znajdziesz limity, które obowiązują w Cloud Firestore. O ile nie zaznaczono inaczej, są to limity bezwzględne.

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.

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 kluczy CMEK.

Kolekcje, dokumenty i pola

Limit Szczegóły
Ograniczenia dotyczące identyfikatorów kolekcji
  • Musi zawierać prawidłowe znaki UTF-8
  • Nie może przekraczać 1500 bajtów
  • Nie może zawierać ukośnika (/)
  • Nie może składać się wyłącznie z jednej kropki (.) ani 2 kropek (..).
  • Nie można dopasować wyrażenia regularnego __.*__
Matsymalna głębokość podkolekcji 100
Ograniczenia dotyczące identyfikatorów dokumentów
  • Musi zawierać prawidłowe znaki UTF-8
  • Nie może przekraczać 1500 bajtów
  • Nie może zawierać ukośnika (/).
  • Nie może składać się wyłącznie z jednej kropki (.) ani 2 kropek (..).
  • Nie można dopasować wyrażenia regularnego __.*__
  • Jeśli importujesz encje Datastore do bazy danych Firestore, liczbowe identyfikatory encji są widoczne 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
  • Musi zawierać prawidłowe znaki UTF-8
  • Nie można dopasować 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że być przekazywany 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 taka, która spełnia wszystkie te warunki:
  • Zawiera tylko znaki a-z, A-Z, 0-9 i podkreślenie (_)
  • Nie rozpoczyna 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 ukośnikiem lewym (\). Aby uniknąć nazw pól w cudzysłowie, możesz przekazać ścieżkę pola jako obiekt FieldPath (zobacz na przykład 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

Pola map i tablic dodają 1 poziom do ogólnej głębokości obiektu. Na przykład ten obiekt ma łącznie 3 poziomy:


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

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, z 60-sekundowym czasem wygaśnięcia bezczynności.
Maksymalna liczba przekształceń pól, które można wykonać na pojedynczym dokumencie w ramach operacji Commit lub transakcji 500

Indeksy

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

Limit Szczegóły
Maksymalna liczba indeksów złożonych w bazie danych
Maksymalna liczba konfiguracji pojedynczego pola w bazie danych

Jedna konfiguracja na poziomie pola może zawierać wiele konfiguracji tego samego pola. Na przykład wykluczenie indeksowania pojedynczego pola i zasada TTL dla tego samego pola liczą się jako jedna konfiguracja pola w ramach limitu.

Maksymalna liczba wpisów indeksu dla każdego dokumentu

40 000

Liczba wpisów indeksu jest sumą tych wartości dla dokumentu:

  • Liczba wpisów indeksu pojedynczego pola
  • Liczba wpisów indeksu złożonego

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

Maksymalna liczba pól w indeksie wieloskładnikowym 100
Maksymalny rozmiar wpisu indeksu

7,5 KiB

Aby dowiedzieć się, jak Cloud Firestore oblicza rozmiar wpisu indeksu, zobacz rozmiar wpisu indeksu.

Maksymalna suma rozmiarów wpisów indeksu dokumentu

8 MiB

Łączny rozmiar to suma tych elementów 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 pojedynczego pola w bazie danych

    Jedna konfiguracja na poziomie pola może zawierać wiele konfiguracji tego samego pola. Na przykład wykluczenie indeksowania pojedynczego pola i zasada TTL dla tego samego pola liczą się jako jedna konfiguracja pola w ramach limitu.

    Eksport/Import

    W przypadku operacji zarządzanego importu i eksportu obowiązują te limity:

    Limit Szczegóły
    Maksymalna łączna liczba żądań eksportu i importu w projekcie dozwolona na minutę 20
    Maksymalna liczba jednoczesnych eksportów i importów 50
    Maksymalna liczba filtrów identyfikatorów kolekcji w przypadku żą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ń dotyczących pojedynczego dokumentu i żądań zapytań.
    • 20 w przypadku odczytów wielu dokumentów, transakcji i zapisów zbiorczych. Poprzedni limit wynoszący 10 dotyczy też każdej operacji.

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

    Przekroczenie któregoś z tych limitów spowoduje błąd braku uprawnień.

    Niektóre wywołania dostępu do dokumentów 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żonych 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 zbiorze zagnieżdżonych instrukcji match 20
    Maksymalna głębokość wywołania funkcji 20
    Maksymalna liczba argumentów funkcji 7
    Maksymalna liczba wią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ą przestrzegać 2 limitów rozmiaru:
    • limit 256 KB na rozmiar źródła tekstu zestawu reguł opublikowanego z konsoli Firebase lub z interfejsu 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 budżety miesięczne i alerty.

    Ustawianie budżetu miesięcznego

    Aby śledzić koszty Cloud Firestore, utwórz budżet miesięczny w konsoli Google Cloud. Budżety nie ograniczają wykorzystania, ale możesz ustawić alerty, które będą Cię powiadamiać, gdy zbliżysz 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 konta Cloud Billing. Możesz użyć domyślnych ustawień alertów lub zmodyfikować je tak, aby wysyłały powiadomienia przy różnych wartościach procentowych budżetu miesięcznego.

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