Wykorzystanie 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 zwrócić uwagę, znajdziesz w cennikuCloud Firestore.

Monitorowanie wykorzystania

Aby monitorować wykorzystanie Cloud Firestore, otwórz Cloud Firestore kartę Użycie w konsoli Firebase. Za pomocą panelu możesz ocenić wykorzystanie w różnych okresach czasu.

szczegółowe informacje o korzystaniu z konsoli Google Cloud,

Podczas tworzenia projektu Firebase tworzysz też projekt Google Cloud. Strony Cloud FirestoreLimity interfejsu APIApp EngineLimity w konsoli Google Cloudśledzą informacje o użyciu i limitach Cloud Firestore.

Bezpłatny limit

Cloud Firestore oferuje bezpłatny limit, który pozwala rozpocząć korzystanie z bazy danych (default) bezpłatnie. Bezpłatne limity zostały podane poniżej. Jeśli potrzebujesz większej puli, musisz włączyć płatności w projekcie Google Cloud.

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

Tylko baza danych (default) kwalifikuje się do limitu bezpłatnego.

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

Poniższe operacje i funkcje nie obejmują bezpłatnego korzystania. Aby korzystać z tych funkcji, musisz włączyć płatności:

  • Korzystanie z nazwanych (niedomyślnych) baz danych
  • Usunięcia z powodu TTL
  • Dane PITR
  • Tworzenie kopii zapasowej danych
  • Operacje przywracania

Więcej informacji o tym, jak są naliczane opłaty za te funkcje, znajdziesz w artykule Ceny miejsca na dane.

Standardowe limity

W tabelach poniżej znajdziesz limity, które obowiązują w przypadku Cloud Firestore. Są to sztywne limity, chyba że wskazano 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
  • Musi zawierać prawidłowe znaki UTF-8.
  • Nie może być dłuższa niż 1500 bajtów
  • nie może zawierać ukośnika (/);
  • Nie może składać się wyłącznie z jednej kropki (.) lub podwójnej kropki (..).
  • Nie można dopasować wyrażenia regularnego __.*__
Maksymalna głębokość podkolekcji 100
Ograniczenia dotyczące identyfikatorów dokumentów
  • Musi zawierać prawidłowe znaki UTF-8.
  • Nie może być dłuższa niż 1500 bajtów
  • nie może zawierać ukośnika (/);
  • Nie może składać się wyłącznie z jednej kropki (.) lub podwójnej kropki (..).
  • Nie można dopasować wyrażenia regularnego __.*__
  • Jeśli importujesz encje Datastore do bazy danych Firestore, identyfikatory liczbowe encji są wyświetlane 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 ścieżek pól
  • Nazwy pól muszą być rozdzielane jedną kropką (.).
  • Może być przekazywany jako ciąg znaków (.) oddzielonych kropką, w którym każdy segment jest albo prostą nazwą pola, albo nazwą pola w cudzysłowie (zdefiniowaną poniżej).
Prosta nazwa pola to taka, która spełnia wszystkie te warunki:
  • Może 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 klamra klamra (`). Na przykład foo.`x&y` odnosi się do pola x&y zagnieżdżonego w polu foo. Aby utworzyć nazwę pola zawierającą znak cudzysłowu, musisz go zastąpić znakiem ukośnika (\). Aby uniknąć cudzysłowów w nazwach pól, możesz przekazać ścieżkę pola jako obiekt FieldPath (np. w JavaScriptzie).
Maksymalny rozmiar ścieżki pola 1500 bajtów
Maksymalny rozmiar wartości pola 1 MiB – 89 bajtów (1048 487 bajtów)
Maksymalna głębia pól w mapie lub tablicy

20

Pola mapy i tablicy zwiększają ogólną głębokość obiektu o 1 poziom. 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 warto też zapoznać się ze sprawdzonymi metodami dotyczącymi projektowania na potrzeby skalowania.

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

Indeksy

W przypadku indeksów pojedynczych pól 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 w tym samym polu są liczone jako 1 konfiguracja pola w stosunku do limitu.

Maksymalna liczba wpisów indeksu w przypadku każdego dokumentu

40 000

Liczba wpisów indeksu to suma tych elementów w dokumentach:

  • 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 rekordy indeksu, zapoznaj się z tym przykładem zliczania rekordó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 w indeksie, zapoznaj się z artykułem Rozmiar wpisu w indeksie.

Maksymalna suma rozmiarów wpisów indeksu dokumentu

8 MiB

Łączny rozmiar to suma tych elementów w dokumentach:

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

    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 w tym samym polu są liczone jako 1 konfiguracja pola w stosunku do limitu.

    Eksportowanie/importowanie

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

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

    Reguły zabezpieczeń

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

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

    Przekroczenie któregokolwiek z tych limitów powoduje błąd dotyczący 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żonego wyrażenia match 10
    Maksymalna długość ścieżki (w segmentach ścieżki) dozwolona w zbiorze ujęć match 100
    Maksymalna liczba zmiennych przechwytywania ścieżki dozwolonych w zestawie ujętych w nawiasy match instrukcji 20
    Maksymalna głębokość wywołania funkcji 20
    Maksymalna liczba argumentów funkcji 7
    Maksymalna liczba let powiązań zmiennych 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ł Reguły muszą spełniać 2 limity rozmiaru:
    • limit 256 KB na rozmiar źródła tekstowego reguł opublikowanego z poziomu konsoli Firebase lub za pomocą interfejsu wiersza poleceń za pomocą polecenia firebase deploy.
    • limit 250 KB na rozmiar skompilowanego zbioru reguł, który powstaje, gdy Firebase przetworzy źródło i uaktywni je na zapleczu;

    Zarządzanie wydatkami

    Aby uniknąć nieoczekiwanych obciążeń 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 konsoli Google Cloud. Budżety nie ograniczają wykorzystania, ale możesz ustawić alerty, które będą Cię powiadamiać, gdy zbliżasz się do zaplanowanych kosztów na dany miesiąc lub je przekraczasz.

    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żywać domyślnych ustawień alertów lub zmodyfikować alerty, aby wysyłać powiadomienia w różnych odsetkach budżetu miesięcznego.

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