Z tego artykułu dowiesz się, jak tworzyć, aktualizować i usuwać Cloud Firestore baz danych. W każdej z nich możesz utworzyć wiele baz danych Cloud Firestore w projektach AI. Do skonfigurowania środowiska produkcyjnego i testowania możesz użyć wielu baz danych środowiska w celu izolowania danych klientów i regionalizacji danych.
Baza danych (default)
Jeśli Twoja aplikacja nie wymaga wielu baz danych, użyj bazy danych (default)
.
Jeśli nie określisz bazy danych, biblioteki klienta Cloud Firestore
a Google Cloud CLI domyślnie łączą się z bazą danych (default)
.
(default)
.
Wymagane role
Aby tworzyć bazy danych i nimi zarządzać, potrzebujesz Owner
lub Datastore Owner
Rola w zarządzaniu tożsamościami i dostępem. Te role zapewniają wymagane uprawnienia.
Wymagane uprawnienia
Aby zarządzać bazami danych, musisz mieć te uprawnienia:
- Tworzenie bazy danych:
datastore.databases.create
- Odczyt konfiguracji bazy danych:
datastore.databases.getMetadata
- Skonfiguruj bazę danych:
datastore.databases.update
- Usuwanie bazy danych:
datastore.databases.delete
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ślnie), a potem Dodaj bazę danych.
- Skonfiguruj bazę danych. Wpisz identyfikator bazy danych. Wybierz lokalizację. Kliknij Utwórz bazę danych.
gcloud
Użyj
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 obejmującego wiele regionów lub i regionie.
- DATABASE_TYPE:
firestore-native
(tryb natywny) lub w trybie Datastore.
--delete-protection
to opcjonalna flaga do włączenia ochrony przed usunięciem.
Nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie:
możesz wyłączyć to ustawienie. Domyślnie jest ono wyłączone.
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 w wielu regionach lub w wielu regionach.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
lubDISABLED
.
Utworzona baza danych jest zawsze w trybie natywnym Firestore.
Pole --delete-protection
jest opcjonalne
w celu włączenia ochrony przed usunięciem. Nie możesz usunąć bazy danych z
ochrona przed usunięciem będzie włączona, 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 w wielu regionach lub w wielu regionach.
- DATABASE_TYPE:
FIRESTORE_NATIVE
(tryb natywny) lubDATASTORE_MODE
w trybie Datastore. - DELETE_PROTECTION_ENABLEMENT: oba
DELETE_PROTECTION_ENABLED
lubDELETE_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 bazy danych to (default)
oraz te zgodne z
:
- Obejmuje 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 przypominać identyfikatora UUID. Nie używaj na przykład identyfikatora takiego jak
f47ac10b-58cc-0372-8567-0e02b2c3d479
Po usunięciu bazy danych nie możesz od razu ponownie użyć identyfikatora bazy danych, dopóki nie upłynie 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 i ochrony przed usunięciem. Ochrona przed usunięciem jest domyślnie wyłączona. Możesz włączyć podczas tworzenia bazy danych albo zaktualizuj konfigurację bazy danych na włączyć ochronę przed usunięciem.
Skonfiguruj usługę Cloud Firestore Security Rules na potrzeby baz danych
Użyj interfejsu wiersza poleceń Firebase, aby wdrożyć Cloud Firestore Security Rules w każdym baz danych. Zapoznaj się ze wskazówkami na temat wdrażania usługi Cloud Firestore Security Rules i zarządzania nią.
Dostęp do nazwanej bazy danych za pomocą biblioteki klienta
Nazwana baza danych obejmuje każdą bazę danych o nazwie innej niż (default)
. Domyślnie pakiety SDK Firebase i biblioteki klienta interfejsu API Google łączą się z bazą danych (default)
Cloud Firestore w projekcie. Aby utworzyć połączone konto klienta
do nazwanej bazy 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
Użyj
gcloud firestore databases list
aby wyświetlić listę wszystkich baz danych w projekcie.
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świetl szczegóły bazy danych
Aby wyświetlić szczegółowe informacje o pojedynczej bazie 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.
Zaktualizowanie konfiguracji bazy danych
Aby zaktualizować ustawienia konfiguracji bazy danych, użyj
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
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
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
Bazę danych możesz usunąć za pomocą konsoli lub narzędzia wiersza poleceń.
Jeśli w bazie danych włączona jest ochrona przed usunięciem, musisz najpierw wyłączyć tę ochronę.
Jeśli baza danych zawiera App Engine dane wyszukiwania lub elementy typu blob, musisz najpierw usunąć te dane.
Usunięcie bazy danych nie powoduje automatycznego usunięcia Eventarc aktywatorów dla tej bazy danych. Wyzwalacz przestaje dostarczać zdarzenia, ale nadal istnieje, dopóki go nie usuniesz.
Konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Na karcie Dane, nad widokiem tabeli danych dla bazy danych kliknij , a następnie wybierz Usuń bazę danych.
- Postępuj zgodnie z instrukcjami, aby usunąć bazę danych.
gcloud
Użyj `gcloud Firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Zastąp DATABASE_ID identyfikatorem bazy danych, którą chcesz usunąć.
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 podanych niżej przykładach używamy interfejsu wiersza poleceń Google Cloud do przypisania dostępu warunkowego co najmniej jedną bazę danych. Możesz też zdefiniuj 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 następujące opcje:
PROJECT_ID
: identyfikator projektuEMAIL
: adres e-mail powiązany z konkretnym kontem Google. Na przykład:alice@example.com
.DATABASE_ID
: identyfikator bazy danych.TITLE
: opcjonalny tytuł wyrażenia.DESCRIPTION
: opcjonalny opis wyrażenia.
Przyznaj dostęp do wszystkich baz danych oprócz 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 opcje:
PROJECT_ID
: identyfikator projektuEMAIL
: adres e-mail powiązany z konkretnym kontem Google. Na przykład:alice@example.com
.DATABASE_ID
: identyfikator bazy danych.TITLE
: opcjonalny tytuł wyrażenia.DESCRIPTION
: opcjonalny opis wyrażenia.
Usuń zasady dotyczące danego użytkownika i danej roli
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Ustaw te opcje:
PROJECT_ID
: identyfikator projektuEMAIL
: adres e-mail powiązany z konkretnym kontem 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)
Wskaźniki zbiorcze możesz sprawdzić na poziomie bazy danych w firestore.googleapis.com/Database
. Wskaźniki raportowane w sekcji firestore_instance
są agregowane na poziomie projektu.
Ograniczenia
- Możesz mieć maksymalnie 100 baz danych na projekt. Aby poprosić o zwiększenie tego limitu, skontaktuj 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 index delete API. Jeśli dane wyszukiwania GAE zostały niedawno usunięte, może minąć trochę czasu, zanim będzie można usunąć bazę danych. - Nie możesz usunąć bazy danych
(default)
, jeśli zawiera ona encje blob. Aby usunąć dane Blobstore, użyj interfejsu Blobstore delete api. Aby sprawdzić, czy Twoja baza danych(default)
zawiera dane Blobstore, uruchom to zapytanie GQL w konsoli Google Cloud:SELECT * FROM __BlobInfo__
. - Nie możesz ponownie użyć identyfikatora bazy danych przez 5 minut od usunięcia.
- Funkcja w Cloud Functions w wersji 1 nie obsługuje nazwanych baz danych Firestore. Do konfigurowania zdarzeń 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.