Dotyczy tylko wersji Cloud Firestore Enterprise. |
Na tej stronie dowiesz się, jak tworzyć, aktualizować i usuwać bazy danych Cloud Firestore w trybie zgodności z MongoDB. W każdym projekcie 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.
Wykorzystanie na poziomie bezpłatnym
Cloud Firestore oferuje bezpłatny poziom umożliwiający rozpoczęcie pracy bezpłatnie.
Bezpłatny poziom dotyczy tylko 1 bazy danych Cloud Firestore w projekcie. Pierwsza baza danych utworzona w projekcie bez bazy danych na poziomie bezpłatnym otrzyma poziom bezpłatny. Jeśli baza danych z zastosowaną bezpłatną wersją zostanie usunięta, kolejna utworzona baza danych otrzyma bezpłatną wersję.
Zanim zaczniesz
Przed utworzeniem bazy danych musisz wykonać te czynności:
-
Jeśli nie masz jeszcze projektu Firebase, utwórz go: w Firebasekonsoli kliknij Dodaj projekt, a potem postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby utworzyć projekt Firebase lub dodać usługi Firebase do istniejącego projektu Google Cloud.
- Przypisz odpowiednie role w usłudze Identity and Access Management zgodnie z opisem w następnej sekcji.
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 Cloud Firestore w trybie zgodności z MongoDB, użyj jednej z tych metod:
Firebase konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Kliknij Utwórz bazę danych.
- Wybierz wersję Enterprise. Kliknij Dalej.
- Wpisz identyfikator bazy danych.
- Wybierz lokalizację bazy danych.
- Skonfiguruj bazę danych, wybierając tryb.
- Kliknij Utwórz.
wiersz poleceń Firebase
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
interfejs wiersza poleceń gcloud
Użyj polecenia gcloud firestore databases create
i ustaw --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa wieloregionowej lub regionalnej bazy danych Cloud Firestore w trybie zgodności z MongoDB.
Aby włączyć ochronę przed usunięciem, dodaj flagę --delete-protection
.
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.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Aby dodać tagi do bazy danych, użyj flagi --tags
. Przykład:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Terraform
Użyj zasobu google_firestore_database
i ustaw wartość database_edition
na ENTERPRISE
.
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa wieloregionowej lub regionalnej bazy danych Cloud Firestore w trybie zgodności z MongoDB.
- DELETE_PROTECTION_ENABLEMENT: Może to być
DELETE_PROTECTION_ENABLED
lubDELETE_PROTECTION_DISABLED
.
Aby włączyć ochronę przed usunięciem, ustaw wartość delete_protection_state
na DELETE_PROTECTION_ENABLED
.
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 to identyfikatory zgodne z tymi zasadami:
- 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żyj ochrony przed usunięciem, aby zapobiec przypadkowemu usunięciu bazy danych. Ochrona przed usunięciem działa w ten sposób:
- 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 ją włączyć.
Wyświetlanie baz danych
Aby wyświetlić listę baz danych, użyj jednej z tych metod:
Firebase konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Kliknij Cloud Firestore, aby wyświetlić wszystkie bazy danych w projekcie.
interfejs wiersza poleceń gcloud
Aby wyświetlić listę wszystkich baz danych w projekcie, użyj polecenia
gcloud firestore databases list
.
gcloud firestore databases list
Wyświetlanie szczegółów bazy danych
Aby wyświetlić szczegóły pojedynczej bazy danych, użyj jednej z tych metod:
Firebase konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Wybierz bazę danych z listy baz danych.
interfejs wiersza poleceń gcloud
Użyj polecenia gcloud firestore databases describe
:
gcloud firestore databases describe --database=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 zmienić, 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:
interfejs wiersza poleceń 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:
interfejs wiersza poleceń 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ń. Usunięcie bazy danych nie wiąże się z opłatami za operacje usuwania.
Jeśli w bazie danych jest włączone ustawienie ochrony przed usunięciem, musisz najpierw wyłączyć ochronę przed usunięciem.
Firebase konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Wybierz bazę danych, którą chcesz usunąć.
- Kliknij Wyświetl więcej.
- Aby usunąć bazę danych, kliknij Usuń.
interfejs wiersza poleceń gcloud
Użyj polecenia `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Zastąp DATABASE_ID identyfikatorem bazy danych do usunięcia.
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 źródłowa baza danych, 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
W konsoli Google Cloud otwórz stronę Bazy danych.
W wierszu tabeli bazy danych, którą chcesz sklonować, kliknij
Wyświetl więcej. Kliknij Sklonuj. Pojawi się okno Utwórz klon.W oknie Utwórz klon podaj parametry klonowania bazy danych:
W polu Nadaj klonowi identyfikator wpisz identyfikator bazy danych nowej sklonowanej bazy danych. Ten identyfikator bazy danych nie może być powiązany z istniejącą bazą danych.
W polu Klonuj od wybierz moment, od którego chcesz klonować. Wybrany czas odpowiada sygnaturze czasowej PITR z dokładnością do minuty.
Kliknij Utwórz klon.
gcloud
Aby sklonować bazę danych, użyj polecenia
gcloud alpha firestore databases clone
:
gcloud alpha 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: 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.00Z
lub2025-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 alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Zmienianie konfiguracji szyfrowania sklonowanej bazy danych
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-name
podaj identyfikator klucza.
Przykład poniżej pokazuje, jak skonfigurować szyfrowanie CMEK w przypadku sklonowanej bazy danych:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
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 poszczególnych baz danych. W przykładach poniżej użyto Google Cloud CLI do przypisania dostępu warunkowego do co najmniej 1 bazy danych. Możesz też definiować warunki uprawnień 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. 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. 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, który reprezentuje konkretne konto. Na przykład:alice@example.com
.
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.
Co dalej?
- Wykonaj czynności opisane w artykule Krótkie wprowadzenie: tworzenie bazy danych i łączenie się z nią.
- Dowiedz się więcej o różnicach w działaniu.
- Dowiedz się więcej o Cloud Monitoringwartościach wskaźników Cloud Firestore w trybie zgodności z MongoDB.