Na tej stronie opisano, jak tworzyć, aktualizować i usuwać bazy danych Cloud Firestore. Możesz utworzyć wiele baz danych Cloud Firestore na projekt. Można używać wielu baz danych do konfigurowania środowisk produkcyjnych i testowych, izolowania danych klientów i regionalizacji danych.
(default)
baza danych
Jeśli Twoja aplikacja nie wymaga wielu baz danych, użyj (default)
bazy danych.
Jeśli nie określisz bazy danych, biblioteki klienta Cloud Firestore i interfejs CLI Google Cloud domyślnie łączą się z (default)
bazą danych.
(default)
bazy danych.Wymagane role
Aby tworzyć bazy danych i zarządzać nimi, potrzebujesz roli Owner
lub Datastore Owner
Zarządzanie tożsamością i dostępem. Te role przyznają wymagane uprawnienia.
Wymagane uprawnienia
Do zarządzania bazami danych potrzebne są następujące uprawnienia:
- Utwórz bazę danych:
datastore.databases.create
- Przeczytaj konfigurację bazy danych:
datastore.databases.getMetadata
- Skonfiguruj bazę danych:
datastore.databases.update
- Usuń bazę danych:
datastore.databases.delete
Utwórz bazę danych
Aby utworzyć bazę danych, użyj polecenia gcloud alpha firestore databases create
.
gcloud
gcloud alpha 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 wielu regionów lub regionów Cloud Firestore .
- DATABASE_TYPE : albo
firestore-native
dla trybu natywnego, albodatastore-mode
dla trybu Datastore.
--delete-protection
to opcjonalna flaga włączająca ochronę przed usunięciem. Nie można usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tego ustawienia. To ustawienie jest domyślnie wyłączone.
Interfejs wiersza polecenia 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 wielu regionów lub regionów Cloud Firestore .
- DELETE_PROTECTION_ENABLEMENT :
ENABLED
lubDISABLED
.
Utworzona baza danych jest zawsze w trybie natywnym Firestore.
--delete-protection <DELETE_PROTECTION_ENABLEMENT>
jest opcjonalnym argumentem włączającym ochronę przed usunięciem. Nie można usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tego ustawienia. To ustawienie jest domyślnie wyłączone.
Terraforma
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 wielu regionów lub regionów Cloud Firestore .
- DATABASE_TYPE : albo
firestore-native
dla trybu natywnego, albodatastore-mode
dla trybu Datastore. - DELETE_PROTECTION_ENABLEMENT :
DELETE_PROTECTION_ENABLED
lubDELETE_PROTECTION_DISABLED
.
delete_protection_state
jest opcjonalnym argumentem włączającym ochronę przed usunięciem. Nie można usunąć bazy danych z włączoną ochroną przed usunięciem, dopóki nie wyłączysz tego ustawienia. To ustawienie jest domyślnie wyłączone.
Identyfikator bazy danych
Prawidłowe identyfikatory baz danych obejmują (default)
i identyfikatory zgodne z następującymi:
- Zawiera tylko litery, cyfry i znaki łącznika (
-
). - Pierwszy znak musi być literą.
- Ostatni znak musi być literą lub cyfrą.
- Minimum 4 znaki.
- Maksymalnie 63 znaki.
Jeśli usuniesz bazę danych, nie będziesz mógł od razu ponownie użyć identyfikatora bazy danych, aż do upłynięcia 5 minut.
Usuń ochronę
Użyj zabezpieczenia przed usunięciem, aby zapobiec przypadkowemu usunięciu bazy danych. Nie można usunąć bazy danych z włączoną ochroną przed usuwaniem, dopóki nie wyłączysz ochrony przed usunięciem. Ochrona przed usuwaniem jest domyślnie wyłączona. Ochronę przed usuwaniem można włączyć podczas tworzenia bazy danych lub zaktualizować konfigurację bazy danych , aby włączyć ochronę przed usunięciem.
Skonfiguruj reguły bezpieczeństwa Cloud Firestore dla swoich baz danych
Użyj interfejsu wiersza polecenia Firebase, aby wdrożyć reguły bezpieczeństwa Cloud Firestore w każdej ze swoich baz danych. Zapoznaj się z przewodnikiem dotyczącym zarządzania i wdrażania reguł bezpieczeństwa Cloud Firestore .
Uzyskaj dostęp do nazwanej bazy danych za pomocą biblioteki klienta
Nazwana baza danych obejmuje każdą bazę danych, która nie ma nazwy (default)
. Domyślnie zestawy SDK Firebase i biblioteki klienckie Google API łączą się z (default)
bazą danych Cloud Firestore w projekcie. Aby utworzyć klienta połączonego z nazwaną bazą danych, ustaw identyfikator bazy danych podczas tworzenia instancji klienta.
Lista baz danych
Aby wyświetlić listę baz danych, użyj jednej z następujących metod:
Konsola
W konsoli Google Cloud Platform przejdź do strony Bazy danych .
gcloud
Użyj polecenia gcloud firestore databases list
aby wyświetlić listę wszystkich baz danych w projekcie.
gcloud firestore databases list
Wyświetl szczegóły bazy danych
Aby wyświetlić szczegóły dotyczące pojedynczej bazy danych, użyj polecenia gcloud firestore databases describe
:
gcloud
gcloud firestore databases describe --database=DATABASE_ID
Zamień DATABASE_ID na identyfikator bazy danych.
Zaktualizuj konfigurację bazy danych
Aby zaktualizować ustawienia konfiguracyjne bazy danych, użyj polecenia gcloud alpha firestore databases update
. Użyj tego polecenia, aby włączyć lub wyłączyć ochronę przed usuwaniem.
Zaktualizuj ustawienie ochrony przed usuwaniem
Aby włączyć ochronę bazy danych przed usunięciem, użyj polecenia gcloud alpha firestore databases update
z flagą --delete-protection
. Na przykład:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection
Zamień DATABASE_ID na identyfikator bazy danych.
Aby wyłączyć ochronę bazy danych przed usunięciem, użyj polecenia gcloud alpha firestore databases update
z flagą --no-delete-protection
. Na przykład:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection
Zamień DATABASE_ID na identyfikator bazy danych.
Usuń bazę danych
Aby usunąć bazę danych, użyj polecenia gcloud alpha firestore databases delete
. Jeśli w bazie danych jest włączone ustawienie ochrony przed usuwaniem, należy najpierw wyłączyć ochronę przed usuwaniem . Jeśli baza danych zawiera dane wyszukiwania GAE lub obiekty typu blob , należy je najpierw usunąć.
gcloud
gcloud alpha firestore databases delete --database=DATABASE_ID
Zastąp DATABASE_ID identyfikatorem bazy danych do usunięcia.
Skonfiguruj uprawnienia dostępu do poszczególnych baz danych
Za pomocą Warunków zarządzania tożsamością i dostępem można skonfigurować uprawnienia dostępu na poziomie poszczególnych baz danych. W poniższych przykładach zastosowano interfejs CLI Google Cloud do przypisania dostępu warunkowego do jednej lub większej liczby baz danych. Możesz także zdefiniować warunki uprawnień w konsoli GCP .
Wyświetl istniejące zasady uprawnień
gcloud projects get-iam-policy PROJECT_ID
Ustaw PROJECT_ID
na swój identyfikator projektu.
Przyznaj dostęp 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 elementy:
-
PROJECT_ID
: identyfikator Twojego projektu -
EMAIL
: adres e-mail reprezentujący określone konto Google. Na przykładalice@example.com
. -
DATABASE_ID
: identyfikator bazy danych. -
TITLE
: opcjonalny tytuł wyrażenia. -
DESCRIPTION
: opcjonalny opis wyrażenia.
Przyznaj dostęp 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 następujące elementy:
-
PROJECT_ID
: identyfikator Twojego projektu -
EMAIL
: adres e-mail reprezentujący określone konto Google. Na przykładalice@example.com
. -
DATABASE_ID
: identyfikator bazy danych. -
TITLE
: opcjonalny tytuł wyrażenia. -
DESCRIPTION
: opcjonalny opis wyrażenia.
Usuń zasady dla danego członka i roli
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Ustaw następujące elementy:
-
PROJECT_ID
: identyfikator Twojego projektu -
EMAIL
: adres e-mail reprezentujący określone konto Google. Na przykładalice@example.com
.
Monitorowanie chmury
Wskaźniki Cloud Firestore są raportowane w ramach dwóch monitorowanych zasobów.
- firestore.googleapis.com/Database
- firestore_instance (starsza wersja)
Możesz sprawdzić zagregowane metryki na poziomie bazy danych, przeglądając stronę firestore.googleapis.com/Database
. Metryki raportowane w sekcji firestore_instance
są agregowane na poziomie projektu.
Ograniczenia
- W jednym projekcie można mieć maksymalnie 100 baz danych. Możesz skontaktować się z pomocą techniczną , aby poprosić o zwiększenie tego limitu.
- Nie możesz usunąć bazy danych, jeśli zawiera ona dane wyszukiwania GAE i/lub obiekty typu blob . Użyj interfejsu API usuwania indeksu, aby usunąć dane wyszukiwania GAE.
- Nie można ponownie użyć identyfikatora bazy danych przed upływem 5 minut od usunięcia.
- Cloud Function v1 nie obsługuje nazwanych baz danych Firestore. Aby skonfigurować zdarzenia dla nazwanych baz danych, użyj wyzwalaczy Cloud Firestore (2. generacji) .
- Wyzwalacze funkcji Firestore v1 i wyzwalacze zdarzeń Firestore mogą przestać działać po usunięciu bazy danych, nawet jeśli utworzona zostanie nowa baza danych o tej samej nazwie.