Korzystanie i limity

Z tego przewodnika dowiesz się więcej o Cloud Firestorelimitach. Pełne i szczegółowe wyjaśnienie kosztów Cloud Firestore, w tym rzeczy, na które należy uważać, znajdziesz w Cloud Firestorecenniku.

Monitorowanie wykorzystania

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

Szczegółowe wykorzystanie w Google Cloudkonsoli

Gdy tworzysz projekt Firebase, tworzysz też Google Cloud projekt. 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. Wartości bezpłatnego limitu znajdziesz 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.

Firestore umożliwia utworzenie tylko 1 bezpłatnej bazy danych w projekcie.

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:

  • Usuwanie przez TTL
  • Dane odzyskiwania do określonego momentu
  • Utwórz kopię zapasową danych
  • Operacje przywracania

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

Standardowe limity

W tabelach poniżej znajdziesz limity obowiązujące w przypadku usługiCloud Firestore. Są to sztywne limity, o ile nie wskazano inaczej.

Bazy danych

Limit Szczegóły
Maksymalna liczba baz danych w projekcie

100

Możesz skontaktować się z zespołem pomocy, aby poprosić o zwiększenie tego limitu.

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 z dwóch kropek (..).
  • Nie można dopasować wyrażenia regularnego __.*__
Maksymalna głębokość podzbiorów 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 dwóch kropek (..).
  • Nie można dopasować wyrażenia regularnego __.*__
  • Jeśli zaimportujesz encje Datastore do bazy danych Firestore, numeryczne identyfikatory encji będą 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 nazwa, w przypadku której spełnione są 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 backtick (`). 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 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 mapy i tablicy zwiększają ogólną głębokość obiektu o 1 poziom. 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 transakcji 270 sekund z 60-sekundowym czasem wygaśnięcia w przypadku braku aktywnoś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ólindeksó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 dla bazy danych

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

Maksymalna liczba wpisów w indeksie 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 w indeksie złożonym

Aby dowiedzieć się, jak Cloud Firestore przekształca dokument i zestaw indeksów w pozycje indeksu, zapoznaj się z tym przykładem liczby pozycji 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 w indeksie, zapoznaj się z informacjami o rozmiarze wpisu w indeksie.

Maksymalna suma rozmiarów wpisów indeksu dokumentu

8 MiB

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

  • 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 dla bazy danych

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

    Eksport/import

    Zarządzane operacje importu i eksportu są objęte tymi limitami:

    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ń eksportowania i importowania 100

    Reguły zabezpieczeń

    Limit Szczegóły
    Maksymalna liczba wywołań exists(), get()getAfter() na żądanie
    • 10 w przypadku żądań dotyczących pojedynczego dokumentu i zapytań.
    • 20 w przypadku odczytów z 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 żądanie zapisu wsadowego z 3 operacjami zapisu, a Twoje reguły zabezpieczeń używają 2 wywołań dostępu do dokumentu, aby zweryfikować każdy zapis. W tym przypadku każde zapisanie wykorzystuje 2 z 10 wywołań dostępu, a żądanie zapisu wsadowego wykorzystuje 6 z 20 wywołań dostępu.

    Przekroczenie któregokolwiek z tych limitów spowoduje błąd dotyczący braku uprawnień.

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

    Maksymalna głębokość zagnieżdżenia 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 dozwolonych w zagnieżdżonych instrukcjach match 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 w ramach jednego żądania 1000
    Maksymalny rozmiar zestawu reguł Zestawy reguł muszą spełniać 2 limity rozmiaru:
    • limit 256 KB na rozmiar źródła tekstowego zestawu reguł opublikowanego w Firebase konsoli lub w interfejsie CLI za pomocą polecenia firebase deploy.
    • limit 250 KB na rozmiar skompilowanego zestawu reguł, który powstaje, gdy Firebase przetwarza źródło i aktywuje je na 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 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 miesięcznych 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żywać domyślnych ustawień alertów lub je modyfikować, aby wysyłać powiadomienia przy różnych procentach budżetu miesięcznego.

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