Zarządzaj bazami danych

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.

Z bezpłatnego limitu można korzystać tylko w przypadku (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:

--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:

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:

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 .

Przejdź do Baz 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ł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 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ład alice@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ład alice@example.com .

Monitorowanie chmury

Wskaźniki Cloud Firestore są raportowane w ramach dwóch monitorowanych zasobów.

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

Co dalej