Na tej stronie opisano sposób tworzenia, aktualizowania i usuwania baz danych Cloud Firestore. W ramach jednego projektu możesz utworzyć wiele baz danych Cloud Firestore. Możesz używać wielu baz danych do konfigurowania środowisk produkcyjnych i testowych, izolowania danych klientów oraz regionalizacji danych.
Baza danych (default)
Jeśli nie określisz bazy danych, biblioteki klienta Cloud Firestore i interfejs wiersza poleceń Google Cloud CLI domyślnie połączą się z bazą danych (default).
Wymagane role
Aby tworzyć bazy danych i nimi zarządzać, musisz mieć rolę Owner lub Datastore Owner w usłudze Identity and Access Management. Te role przyznają wymagane uprawnienia.
Wymagane uprawnienia
Aby zarządzać bazami danych, musisz mieć te uprawnienia:
- Utwórz bazę danych:
datastore.databases.create - Odczytywanie konfiguracji bazy danych:
datastore.databases.getMetadata - Skonfiguruj bazę danych:
datastore.databases.update - Usuwanie bazy danych:
datastore.databases.delete - Klonowanie bazy danych:
datastore.databases.clone
Utwórz bazę danych
Aby utworzyć bazę danych, użyj jednej z tych metod:
Konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Jeśli jest to Twoja pierwsza nazwana baza danych, kliknij Dodaj bazę danych.
- W przeciwnym razie kliknij (domyślne), a następnie Dodaj bazę danych.
- Skonfiguruj swoją bazę danych. Wpisz identyfikator bazy danych. Wybierz lokalizację. Kliknij Utwórz bazę danych.
gcloud
Użyj polecenia gcloud firestore databases create.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestore wieloregionu lub regionu.
- DATABASE_TYPE:
firestore-nativew przypadku trybu natywnego lubdatastore-modew przypadku trybu Datastore.
--delete-protection to opcjonalna flaga włączająca ochronę przed usunięciem.
Nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tego ustawienia. Domyślnie jest ono wyłączone.
Aby dodać tagi do bazy danych, użyj flagi --tags. Przykład:
--tags=123/environment=production,123/costCenter=marketing--tags=tagKeys/333=tagValues/444
wiersz poleceń Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestore regionu lub regionu.
- DELETE_PROTECTION_ENABLEMENT: może to być
ENABLEDlubDISABLED.
Utworzona baza danych zawsze działa w trybie natywnym Firestore.
--delete-protection to opcjonalny argument, który włącza ochronę przed usunięciem. Nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tego ustawienia. To ustawienie jest domyślnie wyłączone.
Terraform
resource "google_firestore_database" "database" { project = "project-id" name = DATABASE_ID location_id = LOCATION type = DATABASE_TYPE // Optional delete_protection_state = DELETE_PROTECTION_STATE }
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestore wieloregionu lub regionu.
- DATABASE_TYPE:
FIRESTORE_NATIVEdla trybu natywnego lubDATASTORE_MODEdla trybu magazynu danych. - DELETE_PROTECTION_ENABLEMENT: Może to być
DELETE_PROTECTION_ENABLEDlubDELETE_PROTECTION_DISABLED.
delete_protection_state to opcjonalny argument umożliwiający włączenie ochrony przed usunięciem. Nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tego ustawienia. Domyślnie jest ono wyłączone.
Identyfikator bazy danych
Prawidłowe identyfikatory baz danych obejmują (default) oraz identyfikatory zgodne z następującymi:
- Zawiera tylko litery, cyfry i łączniki (
-). - Litery muszą być małe.
- Pierwszy znak musi być literą.
- Ostatni znak musi być literą lub cyfrą.
- Minimum 4 znaki.
- Może mieć maksymalnie 63 znaki.
- Nie może to być identyfikator UUID ani nie może go przypominać. Nie używaj np. identyfikatora takiego jak
f47ac10b-58cc-0372-8567-0e02b2c3d479.
Jeśli usuniesz bazę danych, nie możesz od razu ponownie użyć jej identyfikatora. Musisz poczekać 5 minut.
Zabezpieczenie przed usunięciem
Używaj ochrony przed usunięciem, aby zapobiec przypadkowemu usunięciu bazy danych. Nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tej ochrony. Ochrona przed usunięciem jest domyślnie wyłączona. Ochronę przed usunięciem możesz włączyć podczas tworzenia bazy danych lub zaktualizować konfigurację bazy danych, aby włączyć ochronę przed usunięciem.
Skonfiguruj Cloud Firestore Security Rules dla swoich baz danych
Użyj interfejsu wiersza poleceń Firebase, aby wdrożyć Cloud Firestore Security Rules w każdej ze swoich baz danych. Zapoznaj się z przewodnikiem dotyczącym zarządzania i wdrażania Cloud Firestore Security Rules.
Uzyskaj dostęp do nazwanej bazy danych za pomocą biblioteki klienta
Nazwana baza danych obejmuje każdą bazę danych, której nazwa nie jest (default). Domyślnie zestawy Firebase SDK i biblioteki klienta Google API łączą się z bazą danych (default)
Cloud Firestore w projekcie. Aby utworzyć klienta połączonego z nazwaną bazą danych, należy ustawić identyfikator bazy danych podczas tworzenia klienta.
Wyświetlanie baz danych
Aby wyświetlić listę baz danych, użyj jednej z tych metod:
Konsola
W konsoli Google Cloud otwórz stronę Bazy danych.
gcloud
Aby wyświetlić listę wszystkich baz danych w projekcie, użyj polecenia
gcloud firestore databases list.
gcloud firestore databases list
wiersz poleceń Firebase
Użyj polecenia firebase firestore:databases:list, aby wyświetlić listę wszystkich baz danych w projekcie.
firebase firestore:databases:list
Wyświetlanie szczegółów bazy danych
Aby wyświetlić szczegóły pojedynczej bazy danych, użyj jednej z tych metod:
gcloud
Użyj polecenia gcloud firestore databases describe:
gcloud firestore databases describe --database=DATABASE_ID
wiersz poleceń Firebase
Użyj polecenia firebase firestore:databases:get:
firebase firestore:databases:get DATABASE_ID
Zastąp DATABASE_ID identyfikatorem bazy danych.
Aktualizowanie konfiguracji bazy danych
Aby zaktualizować ustawienia konfiguracji bazy danych, użyj polecenia gcloud firestore databases update.
Użyj tego polecenia, aby włączyć lub wyłączyć ochronę przed usunięciem.
Aktualizowanie ustawienia ochrony przed usunięciem
Aby włączyć ochronę bazy danych przed usunięciem, użyj polecenia
gcloud firestore databases update
z flagą --delete-protection. Przykład:
gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Zastąp DATABASE_ID identyfikatorem bazy danych.
Aby wyłączyć ochronę przed usunięciem w bazie danych, użyj polecenia
gcloud firestore databases update
z flagą --no-delete-protection. Przykład:
gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Zastąp DATABASE_ID identyfikatorem bazy danych.
Usuwanie bazy danych
Aby usunąć bazę danych, użyj konsoli lub narzędzia wiersza poleceń.
Jeśli w bazie danych jest włączone ustawienie ochrony przed usunięciem, musisz najpierw wyłączyć ochronę przed usunięciem.
Jeśli baza danych zawiera App Engine danych wyszukiwania lub obiekty blob, musisz najpierw usunąć te dane.
Usunięcie bazy danych nie powoduje automatycznego usunięcia żadnych wyzwalaczy Eventarc dla tej bazy danych. Wywoływacz przestaje dostarczać zdarzenia, ale nadal istnieje, dopóki go nie usuniesz.
Usunięcie bazy danych nie wiąże się z opłatami za operacje usuwania.
Konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Na karcie Dane nad widokiem tabeli danych bazy danych kliknij , a następnie wybierz Usuń bazę danych.
- Postępuj zgodnie z instrukcjami, aby usunąć bazę danych.
gcloud
Użyj polecenia `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Zastąp DATABASE_ID identyfikatorem bazy danych, którą chcesz usunąć. Aby usunąć domyślną bazę danych, użyj identyfikatora '(default)'
Klonowanie bazy danych
Możesz sklonować istniejącą bazę danych w wybranej sygnaturze czasowej do nowej bazy danych:
Sklonowana baza danych to nowa baza danych, która zostanie utworzona w tej samej lokalizacji co źródłowa baza danych.
Aby utworzyć klon, Cloud Firestore używa danych odzyskiwania do określonego momentu ze źródłowej bazy danych. Sklonowana baza danych zawiera wszystkie dane i indeksy.
Domyślnie sklonowana baza danych będzie szyfrowana w taki sam sposób jak baza danych źródłowa, czyli przy użyciu domyślnego szyfrowania Google lub szyfrowania CMEK. Możesz określić inny typ szyfrowania lub użyć innego klucza do szyfrowania CMEK.
Sygnatura czasowa ma dokładność do minuty i określa punkt w czasie w przeszłości, w okresie zdefiniowanym przez okno PITR:
- Jeśli odzyskiwanie do określonego momentu jest włączone w przypadku bazy danych, możesz wybrać dowolną minutę z ostatnich 7 dni (lub krótszego okresu, jeśli odzyskiwanie do określonego momentu zostało włączone mniej niż 7 dni temu).
- Jeśli odzyskiwanie do określonego momentu nie jest włączone, możesz wybrać dowolną minutę z ostatniej godziny.
- Najwcześniejszy sygnaturę czasową, którą możesz wybrać, znajdziesz w opisie bazy danych.
Konsola
Konsola Firebase nie obsługuje klonowania bazy danych. Do klonowania baz danych można użyć instrukcji Google Cloud CLI.
gcloud
Aby sklonować bazę danych, użyj polecenia
gcloud firestore databases clone:
gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Zastąp następujące elementy:
SOURCE_DATABASE: nazwa bazy danych istniejącej bazy danych, którą chcesz sklonować. Nazwa ma format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.PITR_TIMESTAMP: a sygnatura czasowa PITR w formacie RFC 3339, z dokładnością do minuty. Na przykład:
2025-06-01T10:20:00.00Zlub2025-06-01T10:30:00.00-07:00.DESTINATION_DATABASE_ID: identyfikator bazy danych nowej sklonowanej bazy danych. Ten identyfikator bazy danych nie może być powiązany z istniejącą bazą danych.
Przykład:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
Jeśli podczas klonowania bazy danych chcesz powiązać ją z tagami, użyj poprzedniego polecenia z flagą --tags, która jest opcjonalną listą par tagów KLUCZ=WARTOŚĆ do powiązania.
Przykład:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
Domyślnie sklonowana baza danych będzie miała taką samą konfigurację szyfrowania jak baza danych źródłowa. Aby zmienić konfigurację szyfrowania, użyj argumentu --encryption-type:
- (Domyślnie)
use-source-encryption: użyj tej samej konfiguracji szyfrowania co źródłowa baza danych. google-default-encryption: użyj domyślnego szyfrowania Google.customer-managed-encryption: użyj szyfrowania CMEK. W argumencie--kms-key-namepodaj identyfikator klucza.
Przykład poniżej pokazuje, jak skonfigurować szyfrowanie za pomocą klucza CMEK w przypadku sklonowanej bazy danych:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
wiersz poleceń Firebase
Aby sklonować bazę danych, użyj polecenia firebase firestore:databases:clone:
firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP'
Zastąp następujące elementy:
SOURCE_DATABASE: nazwa bazy danych istniejącej bazy danych, którą chcesz sklonować. Nazwa ma format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.DESTINATION_DATABASE: nazwa bazy danych nowej sklonowanej bazy danych. Nazwa ma format
projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID. Ta nazwa bazy danych nie może być powiązana z istniejącą bazą danych.PITR_TIMESTAMP: a sygnatura czasowa PITR w formacie RFC 3339, z dokładnością do minuty. Na przykład:
2025-06-01T10:20:00.00Zlub2025-06-01T10:30:00.00-07:00. Jeśli nie zostanie określony, wybrany moment będzie bieżącą godziną zaokrągloną w dół do minuty.
Domyślnie sklonowana baza danych będzie miała taką samą konfigurację szyfrowania jak baza danych źródłowa. Aby zmienić konfigurację szyfrowania, użyj argumentu --encryption-type:
- (Domyślnie)
USE_SOURCE_ENCRYPTION: użyj tej samej konfiguracji szyfrowania co źródłowa baza danych. GOOGLE_DEFAULT_ENCRYPTION: użyj domyślnego szyfrowania Google.CUSTOMER_MANAGED_ENCRYPTION: użyj szyfrowania CMEK. W argumencie--kms-key-namepodaj identyfikator klucza.
Konfigurowanie uprawnień dostępu do poszczególnych baz danych
Za pomocą warunków zarządzania tożsamościami i dostępem można skonfigurować uprawnienia dostępu na poziomie konkretnej bazy danych. W przykładach poniżej użyto Google Cloud CLI do przypisania dostępu warunkowego do co najmniej 1 bazy danych. Możesz również zdefiniować warunki IAM w konsoli Google Cloud.
Wyświetlanie istniejących zasad uprawnień
gcloud projects get-iam-policy PROJECT_ID
Ustaw PROJECT_ID na identyfikator projektu.
Przyznawanie dostępu do bazy danych
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Ustaw te wartości:
PROJECT_ID: identyfikator projektuEMAIL: adres e-mail, który reprezentuje konkretne konto Google. Na przykład:alice@example.com.DATABASE_ID: identyfikator bazy danych.TITLE: opcjonalny tytuł wyrażenia.DESCRIPTION: opcjonalny opis wyrażenia.
Przyznawanie dostępu do wszystkich baz danych z wyjątkiem jednej
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Ustaw te wartości:
PROJECT_ID: identyfikator projektuEMAIL: adres e-mail, który reprezentuje konkretne konto Google. Na przykład:alice@example.com.DATABASE_ID: identyfikator bazy danych.TITLE: opcjonalny tytuł wyrażenia.DESCRIPTION: opcjonalny opis wyrażenia.
Usuwanie zasad dotyczących danego użytkownika i roli
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Ustaw te wartości:
PROJECT_ID: identyfikator projektuEMAIL: adres e-mail reprezentujący konkretne konto Google. Na przykład:alice@example.com.
Cloud Monitoring
Dane Cloud Firestore są raportowane w ramach 2 monitorowanych zasobów.
- firestore.googleapis.com/Baza danych
- firestore_instance(starsza wersja)
Możesz sprawdzić łączne metryki na poziomie bazy danych, przeglądając firestore.googleapis.com/Database. Wskaźniki podane w sekcji firestore_instance są agregowane na poziomie projektu.
Ograniczenia
- W każdym projekcie możesz mieć maksymalnie 100 baz danych. Aby poprosić o zwiększenie tego limitu, możesz skontaktować się z zespołem pomocy.
- Nie możesz usunąć bazy danych
(default), jeśli zawiera ona dane wyszukiwania GAE. Aby usunąć dane wyszukiwania GAE, użyj interfejsu API usuwania indeksu. Jeśli niedawno usunąłeś dane wyszukiwania GAE, może upłynąć pewien okres oczekiwania, zanim będziesz mógł usunąć bazę danych. - Nie możesz usunąć bazy danych
(default), jeśli zawiera ona obiekty blob. Aby usunąć dane Blobstore, użyj interfejsu Blobstore delete API. Aby sprawdzić, czy w bazie danych(default)znajdują się dane Blobstore, uruchom w konsoli Google Cloud to zapytanie GQL:SELECT * FROM __BlobInfo__. - Nie możesz ponownie użyć identyfikatora bazy danych, dopóki nie minie 5 minut od usunięcia.
- Funkcja Cloud Function v1 nie obsługuje baz danych nazwanych Firestore. Użyj wyzwalaczy Cloud Firestore (2. generacja), aby skonfigurować zdarzenia dla nazwanych baz danych.
- Wyzwalacze funkcji Firestore v1 i wyzwalacze zdarzeń Firestore mogą przestać działać po usunięciu bazy danych, nawet jeśli zostanie utworzona nowa baza danych o tej samej nazwie.