Wykorzystanie i ograniczenia

Skorzystaj z tego przewodnika, aby poznać limity Cloud Firestore i zapoznaj się z cennikiem Cloud Firestore , aby uzyskać pełne, szczegółowe wyjaśnienie kosztów Cloud Firestore, w tym rzeczy, na które należy zwrócić uwagę.

Monitoruj swoje użycie

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

Szczegółowe wykorzystanie w konsoli Google Cloud

Tworząc projekt Firebase, tworzysz także projekt Google Cloud. Strony Cloud Firestore API Quotas i App Engine Quotas w konsoli Google Cloud śledzą informacje o wykorzystaniu Cloud Firestore i limitach.

Bezpłatny limit

Cloud Firestore oferuje bezpłatny limit, który pozwala na bezpłatne rozpoczęcie pracy z (default) bazą danych. Kwoty bezpłatnych kwot są wymienione poniżej. Jeśli potrzebujesz więcej miejsca, musisz włączyć rozliczenia dla swojego projektu Google Cloud .

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

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

Poziom bezpłatny Kontyngent
Przechowywane dane 1 GiB
Dokument czyta 50 000 dziennie
Dokument pisze 20 000 dziennie
Dokument został usunięty 20 000 dziennie
Wychodzący transfer danych 10 GiB miesięcznie

Poniższe operacje i funkcje nie obejmują bezpłatnego użytkowania. Aby korzystać z tych funkcji, musisz włączyć rozliczenia:

  • Korzystanie z nazwanych (innych niż domyślne) baz danych
  • TTL usuwa
  • Dane PITR
  • Kopia zapasowa danych
  • Przywróć operacje

Aby uzyskać więcej informacji na temat sposobu rozliczania tych funkcji, zobacz Cennik pamięci masowej .

Standardowe limity

Poniższe tabele przedstawiają limity mające zastosowanie do Cloud Firestore. Są to twarde limity, chyba że zaznaczono inaczej.

Bazy danych

Limit Detale
Maksymalna liczba baz danych na projekt

100

Możesz skontaktować się z pomocą techniczną , aby poprosić o zwiększenie tego limitu.

Kolekcje, dokumenty i pola

Limit Detale
Ograniczenia dotyczące identyfikatorów kolekcji
  • Musi zawierać prawidłowe znaki UTF-8
  • Nie może być dłuższy niż 1500 bajtów
  • Nie może zawierać ukośnika ( / )
  • Nie może składać się wyłącznie z pojedynczej 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ższy niż 1500 bajtów
  • Nie może zawierać ukośnika ( / )
  • Nie może składać się wyłącznie z pojedynczej kropki ( . ) lub podwójnej kropki ( .. )
  • Nie można dopasować wyrażenia regularnego __.*__
  • Jeśli zaimportujesz encje Datastore do bazy danych Firestore, numeryczne identyfikatory encji zostaną ujawnione 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
Maksymalny rozmiar nazwy pola 1500 bajtów
Ograniczenia na ścieżkach polowych
  • Należy oddzielić nazwy pól pojedynczą kropką ( . )
  • Można przekazać jako ciąg segmentów rozdzielanych kropkami ( . ), gdzie każdy segment jest albo prostą nazwą pola, albo nazwą pola w cudzysłowie (zdefiniowaną poniżej).
Prosta nazwa pola to taka, w której spełnione są wszystkie poniższe warunki:
  • Zawiera tylko znaki az , AZ , 0-9 i podkreślenie ( _ )
  • Nie zaczyna się od 0-9
Cytowana nazwa pola zaczyna się i kończy znakiem kreski ( ` ). Na przykład foo.`x&y` odnosi się do pola x&y zagnieżdżonego pod polem foo . Aby utworzyć nazwę pola ze znakiem backtick, należy uciec od znaku backtick za pomocą znaku odwrotnego ukośnika ( \ ). Dla wygody możesz uniknąć cytowania nazw pól, przekazując ścieżkę pola jako obiekt FieldPath ( na przykład zobacz JavaScript FieldPath ).
Maksymalny rozmiar ścieżki polowej 1500 bajtów
Maksymalny rozmiar wartości pola 1 MiB - 89 bajtów (1 048 487 bajtów)
Maksymalna głębokość pól na mapie lub w tablicy 20

Zapisy i transakcje

Oprócz tych ograniczeń warto zapoznać się także z najlepszymi praktykami projektowania pod kątem skali .

Limit Detale
Maksymalny rozmiar żądania API 10 MB
Limit czasu na transakcję 270 sekund, z czasem bezczynności wynoszącym 60 sekund

Indeksy

Poniższe ograniczenia mają zastosowanie do indeksów jednopolowych i indeksów złożonych :

Limit Detale
Maksymalna liczba indeksów złożonych dla bazy danych
Maksymalna liczba konfiguracji jednopolowych dla bazy danych

Konfiguracja na poziomie jednego pola może zawierać wiele konfiguracji dla tego samego pola. Na przykład zwolnienie z indeksowania pojedynczego pola i zasady TTL dotyczące tego samego pola wliczają się do limitu jako konfiguracja jednego pola.

Maksymalna liczba wpisów indeksu dla każdego dokumentu

40 000

Liczba wpisów indeksu jest sumą następujących wartości dla dokumentu:

  • Liczba jednopolowych wpisów indeksu
  • Liczba wpisów indeksu złożonego

Aby zobaczyć, jak Cloud Firestore zamienia dokument i zestaw indeksów we wpisy indeksu, zobacz przykład liczby wpisów indeksu .

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

7,5 KiB

Aby zobaczyć, jak Cloud Firestore oblicza rozmiar wpisu indeksu, zobacz Rozmiar wpisu indeksu .

Maksymalna suma rozmiarów wpisów indeksu dokumentu

8 MB

Całkowity rozmiar dokumentu jest sumą następujących parametrów:

  • Suma rozmiaru jednopolowych wpisów indeksu dokumentu
  • Suma rozmiaru 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 zawierające obcięte wartości pól mogą zwracać niespójne wyniki.

    Czas życia (TTL)

    Limit Detale
    Maksymalna liczba konfiguracji jednopolowych dla bazy danych

    Konfiguracja na poziomie jednego pola może zawierać wiele konfiguracji dla tego samego pola. Na przykład zwolnienie z indeksowania pojedynczego pola i zasady TTL dotyczące tego samego pola wliczają się do limitu jako konfiguracja jednego pola.

    Eksportuj/Importuj

    Do zarządzanych operacji importu i eksportu mają zastosowanie następujące ograniczenia:

    Limit Detale
    Maksymalna łączna liczba żądań eksportu i importu dla projektu dozwolona na minutę 20
    Maksymalna liczba jednoczesnych eksportów i importów 50
    Maksymalna liczba filtrów identyfikatorów kolekcji dla żądań eksportu i importu 100

    Zasady bezpieczeństwa

    Limit Detale
    Maksymalna liczba wywołań exists() , get() i getAfter() na żądanie
    • 10 w przypadku żądań pojedynczych dokumentów i zapytań.
    • 20 dla odczytów wielu dokumentów, transakcji i zapisów wsadowych. Do każdej operacji obowiązuje również poprzedni limit 10.

      Załóżmy na przykład, że tworzysz zbiorcze żądanie zapisu z 3 operacjami zapisu i że Twoje reguły bezpieczeństwa korzystają z 2 wywołań dostępu do dokumentu w celu sprawdzenia poprawności każdego zapisu. W tym 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 limitów powoduje błąd odmowy uprawnień.

    Niektóre wywołania dostępu do dokumentów mogą być buforowane, a wywołania buforowane 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 zestawie zagnieżdżonych instrukcji match 100
    Maksymalna liczba zmiennych przechwytujących ścieżkę 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 let na funkcję 10
    Maksymalna liczba wywołań funkcji rekurencyjnych lub cyklicznych 0 (niedozwolone)
    Maksymalna liczba wyrażeń ocenianych na żądanie 1000
    Maksymalny rozmiar zestawu reguł Zestawy reguł muszą przestrzegać dwóch ograniczeń rozmiaru:
    • limit 256 KB rozmiaru źródła tekstu zestawu reguł publikowanego z konsoli Firebase lub z interfejsu CLI przy użyciu firebase deploy .
    • limit 250 KB rozmiaru skompilowanego zestawu reguł, który powstaje, gdy Firebase przetwarza źródło i aktywuje je na zapleczu.

    Zarządzaj wydatkami

    Aby uniknąć nieoczekiwanych obciążeń rachunku, ustaw miesięczne budżety i alerty.

    Ustaw miesięczny budżet

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

    Aby ustawić budżet, przejdź do sekcji Rozliczenia 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, aby wysyłać powiadomienia o różnych wartościach procentowych miesięcznego budżetu.

    Dowiedz się więcej o konfigurowaniu budżetów i alertów budżetowych .