Na tej stronie dowiesz się, jak tworzyć, aktualizować i usuwać bazy danych Cloud Firestore. Możesz utworzyć wiele baz danych Cloud Firestore na projekt. Możesz używać wielu baz danych do konfigurowania środowisk produkcyjnych i środowisk testowych, izolowania danych klientów i regionalizacji danych.
Wymagane role i uprawnienia
Aby tworzyć bazy danych i nimi zarządzać, musisz mieć tę rolę Identity and Access Management:
- Właściciel Cloud Datastore (
roles/datastore.owner)
Ta rola przyznaje uprawnienia, których potrzebujesz do tworzenia baz danych i zarządzania nimi:
- Tworzenie bazy danych:
datastore.databases.create - Odczyt konfiguracji bazy danych:
datastore.databases.getMetadata - Konfigurowanie bazy 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
Konsola Firebase
-
W konsoli Firebase kliknij Bazy danych i miejsce na dane > Firestore.
- Kliknij Dodaj bazę danych.
- Wybierz Wersja standardowa. Kliknij Dalej.
- Wpisz identyfikator bazy danych.
- Wybierz lokalizację bazy danych. Kliknij Dalej.
-
Wybierz tryb początkowy dla urządzenia Cloud Firestore Security Rules:
- Tryb testowy
- Dobry sposób na rozpoczęcie korzystania z bibliotek klienta mobilnego i internetowego, ale umożliwia każdemu odczytywanie i zastępowanie danych. Po zakończeniu testów zapoznaj się z sekcją Zabezpieczanie danych.
- tryb produkcyjny,
- Odrzuca wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji (Node.js, Python, Java) nadal będą miały dostęp do bazy danych.
- Kliknij Utwórz.
gcloud
Użyj polecenia gcloud firestore databases create.
-
Aby utworzyć bazę danych Cloud Firestore w wersji Standard:
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=standard --type=DATABASE_TYPE
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa regionu lub wielu regionów Cloud Firestore.
- DATABASE_TYPE:
firestore-nativew przypadku trybu natywnego lubdatastore-modew przypadku trybu Datastore.
--delete-protection to opcjonalna flaga umożliwiająca 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.
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 \n--location=LOCATION \n[--edition EDITION] \n[--firestore-data-access FIRESTORE_ACCESS] \n[--realtime-updates REALTIME_UPDATES] \n[--delete-protection DELETE_PROTECTION_ENABLEMENT]
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestoreregionu lub wielu regionów.
- EDITION: w przypadku funkcji Enterprise ustaw wartość
enterprise. - FIRESTORE_ACCESS: (tylko Enterprise)
ENABLEDlubDISABLED. - REALTIME_UPDATES: (tylko Enterprise)
ENABLEDlubDISABLED. - DELETE_PROTECTION_ENABLEMENT: może to być
ENABLEDlubDISABLED.
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 regionu lub wielu regionów Cloud Firestore.
- DATABASE_TYPE:
FIRESTORE_NATIVEw przypadku trybu natywnego lubDATASTORE_MODEw przypadku trybu Datastore. - DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLEDlubDELETE_PROTECTION_DISABLED.
delete_protection_state to opcjonalny argument, który umożliwia 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łowy identyfikator bazy danych musi być zgodny z tymi regułami:
- Może 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 być identyfikatorem UUID ani go przypominać. Nie używaj na przykład identyfikatora takiego jak
f47ac10b-58cc-0372-8567-0e02b2c3d479.
Od tych reguł jest jeden wyjątek: jeśli nie wpiszesz identyfikatora, wersja Standard utworzy bazę danych o nazwie (default).
Pamiętaj, że po usunięciu bazy danych nie możesz ponownie użyć jej identyfikatora przez około 5 minut.
Zabezpieczenie przed usunięciem
Użyj 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. Możesz zaktualizować konfigurację bazy danych, aby włączyć lub wyłączyć ochronę przed usunięciem.
Konfigurowanie Cloud Firestore Security Rules dla baz danych
Użyj interfejsu wiersza poleceń Firebase, aby wdrożyć Cloud Firestore Security Rules w każdej bazie danych. Zapoznaj się z przewodnikiem po zarządzaniu i wdrażaniu Cloud Firestore Security Rules.
Uzyskiwanie dostępu do nazwanej bazy danych za pomocą biblioteki klienta
Nazwana baza danych to każda baza danych, która nie ma nazwy (default). Domyślnie pakiety SDK Firebase i biblioteki klienta interfejsu API Google łączą się z bazą danych (default)
Cloud Firestore w projekcie. Aby utworzyć klienta połączonego z nazwaną bazą danych, ustaw identyfikator bazy danych podczas tworzenia instancji 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
Aby wyświetlić listę wszystkich baz danych w projekcie, użyj polecenia firebase firestore:databases:list.
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
Dane wyjściowe bazy danych Enterprise zawierają te pola:
Edition:ENTERPRISEFirestore Data Access:DATA_ACCESS_MODE_ENABLEDlubDATA_ACCESS_MODE_DISABLEDMongoDB Compatible Data Access:DATA_ACCESS_MODE_ENABLEDlubDATA_ACCESS_MODE_DISABLEDRealtime Updates:REALTIME_UPDATES_ENABLEDlubREALTIME_UPDATES_DISABLED
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ę przed usunięciem w bazie danych, 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 baza danych ma włączone ustawienie ochrony przed usunięciem, musisz najpierw wyłączyć tę ochronę.
Jeśli baza danych zawiera dane wyszukiwania App Engine lub encje obiektów blob, musisz najpierw usunąć te dane.
Usunięcie bazy danych nie powoduje automatycznego usunięcia Eventarc aktywatorów tej bazy danych. Aktywator przestanie dostarczać zdarzenia, ale będzie nadal istniał, dopóki go nie usuniesz.
Usunięcie bazy danych nie powoduje naliczenia opłat za operacje usuwania.
Konsola
-
W konsoli Firebase kliknij Bazy danych i miejsce na dane > 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 z wybraną sygnaturą czasową 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 źródłowa baza danych, 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 szczegółowość 1 minuty i określa moment w przeszłości w okresie zdefiniowanym przez okno PITR:
- Jeśli w bazie danych jest włączone odzyskiwanie do określonego momentu, możesz wybrać dowolną minutę z ostatnich 7 dni (lub mniej, 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ę w ciągu ostatniej godziny.
- Najwcześniejszą sygnaturę czasową, którą możesz wybrać, znajdziesz w opisie bazy danych.
Konsola
W konsoli Firebase otwórz stronę Bazy danych i pamięć masowa > Firestore.
Obok nazwy bazy danych kliknij , a następnie Sklonuj bazę danych. Pojawi się panel Klonowanie bazy danych.
W panelu Sklonuj bazę danych podaj parametry klonowania bazy danych:
W polu Identyfikator bazy danych wpisz identyfikator nowej sklonowanej bazy danych. Identyfikator bazy danych nie może być już używany przez istniejącą bazę danych.
W polu Klonuj od wybierz punkt w czasie, który chcesz użyć do klonowania. Wybrany czas odpowiada sygnaturze czasowej odzyskiwania do określonego momentu z dokładnością do minuty.
Kliknij Klonuj.
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 istniejącej bazy danych, którą chcesz sklonować. Nazwa ma format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.PITR_TIMESTAMP: sygnatura czasowa odzyskiwania do określonego momentu 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 dla 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 niektórymi tagami, użyj poprzedniego polecenia z flagą --tags, która jest opcjonalną listą par KLUCZ=WARTOŚĆ tagów 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 źródłowa baza danych. Aby zmienić konfigurację szyfrowania, użyj argumentu --encryption-type:
- (Domyślna)
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. Określ identyfikator klucza w argumencie--kms-key-name.
Poniższy przykład pokazuje, jak skonfigurować szyfrowanie CMEK dla 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 istniejącej bazy danych, którą chcesz sklonować. Nazwa ma format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.DESTINATION_DATABASE: nazwa 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: sygnatura czasowa odzyskiwania do określonego momentu 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 zostanie bieżący czas zaokrąglony w dół do minuty.
Domyślnie sklonowana baza danych będzie miała taką samą konfigurację szyfrowania jak źródłowa baza danych. Aby zmienić konfigurację szyfrowania, użyj argumentu --encryption-type:
- (Domyślna)
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. Określ identyfikator klucza w argumencie--kms-key-name.
Konfigurowanie uprawnień dostępu do poszczególnych baz danych
Możesz użyć warunków Identity and Access Management, aby skonfigurować uprawnienia dostępu na poziomie bazy danych. W poniższych przykładach używamy Google Cloud CLI do przypisywania dostępu warunkowego do co najmniej 1 bazy danych. Możesz też 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 projektu,EMAIL: 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 projektu,EMAIL: 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 dla danego użytkownika i roli
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Skonfiguruj te ustawienia:
PROJECT_ID: identyfikator projektu,EMAIL: adres e-mail, który reprezentuje konkretne konto Google. Na przykład:alice@example.com.
Cloud Monitoring
Wskaźniki Cloud Firestore są raportowane w ramach 2 monitorowanych zasobów.
- firestore.googleapis.com/Database
- firestore_instance(starsza wersja)
Możesz sprawdzić dane zbiorcze na poziomie bazy danych, przeglądając firestore.googleapis.com/Database. Dane raportowane 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 do usuwania indeksu. Jeśli dane wyszukiwania GAE zostały niedawno usunięte, może być konieczne odczekanie, zanim będzie można usunąć bazę danych. - Nie możesz usunąć bazy danych
(default), jeśli zawiera ona encje obiektów blob. Aby usunąć dane z Blobstore, użyj interfejsu API Blobstore delete. Możesz sprawdzić, czy baza danych(default)zawiera dane Blobstore, uruchamiając w konsoli Google Cloud to zapytanie GQL:SELECT * FROM __BlobInfo__. - Identyfikatora bazy danych nie można użyć ponownie przez 5 minut od usunięcia.
- Cloud Functions w wersji 1 nie obsługuje nazwanych baz danych Firestore. Aby skonfigurować zdarzenia dla nazwanych baz danych, użyj aktywatorów Cloud Firestore (2 generacji).
- Wyzwalacze funkcji Firestore w wersji 1 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.