Zarządzanie bazami danych

Na tej stronie dowiesz się, jak tworzyć, aktualizować i usuwać bazy danych Cloud Firestore. Dla każdego projektu 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.

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 i interfejs Google Cloud CLI będą domyślnie łączyć się z bazą danych (default).

Bezpłatny limit jest dostępny tylko w bazie danych (default).

Wymagane role

Aby tworzyć bazy danych i nimi zarządzać, musisz mieć rolę Owner lub Datastore Owner Identity and Access Management. 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
  • Usunięcie bazy danych: datastore.databases.delete

Utwórz bazę danych

Aby utworzyć bazę danych, użyj jednej z tych metod:

Konsola
  1. W konsoli Firebase otwórz stronę Baza danych Firestore.

    Otwórz bazę danych Firestore

  2. Jeśli jest to Twoja pierwsza nazwana baza danych, kliknij Dodaj bazę danych.
  3. W przeciwnym razie kliknij (domyślnie), a następnie Dodaj bazę danych.
  4. Skonfiguruj bazę danych. Wpisz identyfikator bazy danych. Wybierz lokalizację. Kliknij Utwórz bazę danych.
gcloud

Użyj polecenia gcloud firestore databases create.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

Zastąp następujące elementy:

--delete-protection to opcjonalna flaga do włączenia ochrony przed usunięciem. Dopóki nie wyłączysz tego ustawienia, nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem. 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:

--delete-protection to opcjonalny argument umożliwiający włączenie ochrony przed usunięciem. Dopóki nie wyłączysz tego ustawienia, nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem. Domyślnie to ustawienie jest 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:

delete_protection_state to opcjonalny argument umożliwiający włączenie ochrony przed usunięciem. Dopóki nie wyłączysz tego ustawienia, nie możesz usunąć bazy danych z włączoną ochroną przed usunięciem. Domyślnie jest ono wyłączone.

Identyfikator bazy danych

Prawidłowe identyfikatory bazy danych to (default) oraz te zgodne z tymi wartościami:

  • 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 ochrony przed usunięciem. 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.

Konfigurowanie reguł zabezpieczeń Cloud Firestore dla baz danych

Wdróż reguły zabezpieczeń Cloud Firestore w każdej z baz danych za pomocą interfejsu wiersza poleceń Firebase. Zapoznaj się z przewodnikiem na temat wdrażania reguł zabezpieczeń Cloud Firestore i zarządzania nimi.

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 interfejsów API Google łączą się z bazą danych Cloud Firestore (default) w projekcie. Aby utworzyć klienta połączonego z nazwaną bazą danych, ustaw jego identyfikator podczas tworzenia klienta.

Wyświetlanie baz danych

Aby wyświetlić listę baz danych, użyj jednej z tych metod:

Konsola

W konsoli Google Cloud Platform otwórz stronę Bazy danych.

Otwórz Bazy danych

gcloud

Użyj polecenia 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 polecenia 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 polecenia 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 polecenia 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

Aby usunąć bazę danych, użyj konsoli lub narzędzia wiersza poleceń.

Jeśli w bazie danych jest włączone ustawienie ochrony przed usunięciem, musisz najpierw wyłączyć ochronę przed usunięciem.

Jeśli baza danych zawiera dane wyszukiwania App Engine lub encje blob, musisz je najpierw usunąć.

Usunięcie bazy danych nie powoduje automatycznego usunięcia z niej żadnych aktywatorów Eventarc. Reguła przestanie dostarczać zdarzenia, ale będzie istnieć, dopóki jej nie usuniesz.

Konsola
  1. W konsoli Firebase otwórz stronę Baza danych Firestore.

    Otwórz bazę danych Firestore

  2. Na karcie Dane, nad widokiem tabeli danych dla bazy danych kliknij i wybierz Usuń bazę danych.
  3. Postępuj zgodnie z instrukcjami, aby usunąć bazę danych.
gcloud

Użyj polecenia `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 zarządzania tożsamościami i dostępem, aby skonfigurować uprawnienia dostępu na poziomie poszczególnych baz danych. W podanych niżej przykładach Google Cloud CLI przypisuje dostęp warunkowy do jednej lub większej liczby baz danych. Możesz też zdefiniować warunki uprawnień w konsoli GCP.

Wyświetl istniejące zasady 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 elementy:

  • PROJECT_ID: identyfikator projektu
  • EMAIL: 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 następujące elementy:

  • PROJECT_ID: identyfikator projektu
  • EMAIL: 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 następujące elementy:

  • PROJECT_ID: identyfikator projektu
  • EMAIL: 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.

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 w konsoli Google Cloud Platform to zapytanie GQL: 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).
  • Aktywatory funkcji Firestore w wersji 1 i Aktywatory zdarzeń Firestore mogą przestać działać po usunięciu bazy danych, nawet jeśli zostanie utworzona nowa baza danych o tej samej nazwie.

Co dalej?