Check out what’s new from Firebase at Google I/O 2022. Learn more

Obliczenia wielkości pamięci

Ta strona opisuje rozmiar przechowywania dokumentów, nazw dokumentów, pól i wpisów indeksu w Cloud Firestore.

Możesz dowiedzieć się o kosztach tej przestrzeni dyskowej w Cenniku Cloud Firestore .

Rozmiar sznurka

Rozmiary ciągów są obliczane jako liczba zakodowanych bajtów UTF-8 + 1.

Następujące dane są przechowywane jako ciągi:

  • Identyfikatory kolekcji
  • Ciąg identyfikatorów dokumentów
  • Nazwy dokumentów
  • Nazwy pól
  • Wartości pola tekstowego

Na przykład:

  • tasks identyfikatorów kolekcji wykorzystują 5 bajtów + 1 bajt, co daje łącznie 6 bajtów.
  • description nazwy pola wykorzystuje 11 bajtów + 1 bajt, co daje łącznie 12 bajtów.

Rozmiar identyfikatora dokumentu

Rozmiar identyfikatora dokumentu to albo rozmiar ciągu dla identyfikatora ciągu lub 8 bajtów dla identyfikatora liczby całkowitej.

Rozmiar nazwy dokumentu

Rozmiar nazwy dokumentu to suma:

  • Rozmiar każdego identyfikatora kolekcji i identyfikatora dokumentu w ścieżce do dokumentu
  • 16 dodatkowych bajtów

Dla dokumentu w podkolekcji users/jeff/tasks z ciągiem ID dokumentu my_task_id , rozmiar nazwy dokumentu to 6 + 5 + 6 + 11 + 16 = 44 bajty:

  • 6 bajtów na identyfikator kolekcji users
  • 5 bajtów na identyfikator dokumentu jeff
  • 6 bajtów na identyfikator kolekcji tasks
  • 11 bajtów na identyfikator dokumentu my_task_id
  • 16 dodatkowych bajtów

Rozmiar wartości pola

W poniższej tabeli przedstawiono rozmiar wartości pól według typu.

Rodzaj Rozmiar
Szyk Suma rozmiarów jego wartości
Boole'a 1 bajt
Bajty Długość w bajtach
Data i godzina 8 bajtów
Liczba zmiennoprzecinkowa 8 bajtów
Punkt geograficzny 16 bajtów
Liczba całkowita 8 bajtów
Mapa Rozmiar mapy liczony w taki sam sposób jak rozmiar dokumentu
Zero 1 bajt
Odniesienie Rozmiar nazwy dokumentu
Ciąg tekstowy Liczba zakodowanych bajtów UTF-8 + 1

Na przykład pole logiczne o nazwie done będzie miało 6 bajtów:

  • 5 bajtów na nazwę pola done
  • 1 bajt dla wartości logicznej

Rozmiar dokumentu

Rozmiar dokumentu to suma:

Ten przykład dotyczy dokumentu w podkolekcji users/jeff/tasks z ciągiem identyfikatora dokumentu my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Całkowity rozmiar pól to 71 bajtów:

Nazwa pola i wartość Rozmiar pola w bajtach
"type": "Personal" 14
5 dla nazwy pola + 9 dla wartości ciągu pola
"done": false 6
5 dla nazwy pola + 1 dla wartości logicznej pola
"priority": 1 17
9 dla nazwy pola + 8 dla całkowitej wartości pola
"description": "Learn Cloud Firestore" 34
12 dla nazwy pola + 22 dla wartości ciągu pola

Rozmiar dokumentu to 44 + 71 + 32 = 147 bajtów:

  • 44 bajty na nazwę dokumentu
  • 71 bajtów dla pól
  • 32 dodatkowe bajty

Rozmiar pozycji indeksu

Rozmiary pozycji indeksu są obliczane w następujący sposób dla indeksów jednopolowych i złożonych.

Rozmiar pozycji indeksu w jednym polu

Rozmiar wpisu indeksu z jednym polem zależy od tego, czy indeks jest objęty zakresem kolekcji, czy grupy kolekcji.

Zakres kolekcji

Wielkość wpisu w indeksie jednopolowym o zasięgu kolekcji to suma:

  • Rozmiar nazwy dokumentu zindeksowanego dokumentu
  • Rozmiar nazwy dokumentu nadrzędnego dokumentu indeksowanego
  • Rozmiar łańcucha nazwy indeksowanego pola
  • Rozmiar indeksowanej wartości pola
  • 32 dodatkowe bajty

Rozważ dokument w podkolekcji users/jeff/tasks z ciągiem identyfikatora dokumentu my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

W przypadku indeksu jednopolowego z zakresem kolekcji, który indeksuje pole done , całkowity rozmiar wpisu w tym indeksie wynosi 109 bajtów:

  • 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
  • 27 bajtów na nazwę dokumentu nadrzędnego users/jeff
  • 5 bajtów na nazwę pola done
  • 1 bajt dla wartości pola logicznego
  • 32 dodatkowe bajty

Zakres grupy kolekcji

Rozmiar wpisu w indeksie jednopolowym o zasięgu grupy kolekcji to suma:

  • Rozmiar nazwy dokumentu zindeksowanego dokumentu
  • Rozmiar łańcucha nazwy indeksowanego pola
  • Rozmiar indeksowanej wartości pola
  • 48 dodatkowych bajtów

Rozważ dokument w podkolekcji users/jeff/tasks z ciągiem identyfikatora dokumentu my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

W przypadku indeksu jednopolowego z zakresem grupy kolekcji, który indeksuje pole done , całkowity rozmiar wpisu w tym indeksie wynosi 98 bajtów:

  • 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
  • 5 bajtów na nazwę pola done
  • 1 bajt dla wartości pola logicznego
  • 48 dodatkowych bajtów

Rozmiar pozycji indeksu złożonego

Rozmiar wpisu w indeksie złożonym zależy od tego, czy indeks jest objęty zakresem kolekcji, czy grupy kolekcji.

Zakres kolekcji

Rozmiar wpisu indeksu w indeksie złożonym o zakresie kolekcji to suma:

  • Rozmiar nazwy dokumentu zindeksowanego dokumentu
  • Rozmiar nazwy dokumentu nadrzędnego dokumentu indeksowanego
  • Suma indeksowanych wartości pól
  • 32 dodatkowe bajty

Rozważ dokument w podkolekcji users/jeff/tasks z ciągiem identyfikatora dokumentu my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

W przypadku indeksu złożonego o zakresie kolekcji, który indeksuje pola done i priority (oba rosnąco), łączny rozmiar wpisu w tym indeksie wynosi 112 bajtów:

  • 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
  • 27 bajtów na nazwę dokumentu nadrzędnego users/jeff
  • 1 bajt dla wartości pola logicznego
  • 8 bajtów na wartość pola liczb całkowitych
  • 32 dodatkowe bajty

Zakres grupy kolekcji

Rozmiar wpisu indeksu w indeksie złożonym o zakresie grupy kolekcji to suma:

  • Rozmiar nazwy dokumentu zindeksowanego dokumentu
  • Suma indeksowanych wartości pól
  • 32 dodatkowe bajty

Rozważ dokument w podkolekcji users/jeff/tasks z ciągiem identyfikatora dokumentu my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

W przypadku indeksu złożonego o zakresie grupy kolekcji, który indeksuje pola done i priority (oba rosnąco), całkowity rozmiar wpisu indeksu w tym indeksie wynosi 85 bajtów:

  • 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
  • 1 bajt dla wartości pola logicznego
  • 8 bajtów dla wartości pola liczb całkowitych
  • 32 dodatkowe bajty

Co dalej

Dowiedz się więcej o cenach Cloud Firestore .