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 jednej z następujących metod:

Konsola
  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Kliknij opcję Utwórz bazę danych .
  3. Wybierz tryb bazy danych. Kliknij Kontynuuj
  4. Skonfiguruj swoją bazę danych. Wprowadź identyfikator bazy danych. Wybierz lokalizację. Kliknij opcję Utwórz bazę danych .
gcloud

Użyj polecenia gcloud alpha firestore databases create .

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:

--delete-protection 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 ( - ).
  • Litery muszą być małe.
  • Pierwszy znak musi być literą.
  • Ostatni znak musi być literą lub cyfrą.
  • Minimum 4 znaki.
  • Maksymalnie 63 znaki.
  • Nie może być identyfikatorem UUID ani przypominać identyfikatora UUID. Na przykład nie używaj identyfikatora takiego jak f47ac10b-58cc-0372-8567-0e02b2c3d479 .

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 konsoli lub narzędzia wiersza poleceń.

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 App Engine lub obiekty typu blob , musisz najpierw usunąć te dane.

Usunięcie bazy danych nie powoduje automatycznego usunięcia żadnych wyzwalaczy Eventarc dla tej bazy danych. Wyzwalacz przestaje dostarczać zdarzenia, ale nadal istnieje, dopóki nie usuniesz wyzwalacza .

Konsola
  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Kliknij Wyświetl więcej w wierszu tabeli dotyczącym bazy danych, którą chcesz usunąć. Kliknij Usuń . Pojawi się okno dialogowe.
  3. W Usunąć bazę danych? w oknie dialogowym potwierdź usunięcie wpisując identyfikator bazy danych w polu tekstowym. Kliknij Usuń . Konsola informuje o powodzeniu lub niepowodzeniu operacji.

    Jeśli operacja się nie powiedzie, przejrzyj szczegóły bazy danych i sprawdź, czy ochrona przed usunięciem jest wyłączona. Aby wyłączyć ochronę przed usuwaniem, zobacz Aktualizowanie ustawienia ochrony przed usuwaniem .

gcloud

Użyj polecenia „usuń bazy danych gcloud alpha firestore” .

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