Tworzenie baz danych i zarządzanie nimi

Na tej stronie dowiesz się, jak tworzyć, aktualizować i usuwać Cloud Firestore bazy danych. W każdym projekcie możesz utworzyć kilka Cloud Firestore baz danych. Możesz używać wielu baz danych do konfigurowania środowisk produkcyjnych i testowych, izolowania danych klientów oraz regionalizacji danych.

Wykorzystanie na poziomie bezpłatnym

Cloud Firestore oferuje poziom bezpłatny który umożliwia rozpoczęcie pracy bezpłatnie.

Poziom bezpłatny dotyczy tylko jednej Cloud Firestore bazy danych na projekt. Pierwsza baza danych utworzona w projekcie bez bazy danych na poziomie bezpłatnym otrzyma poziom bezpłatny. Jeśli baza danych z zastosowanym poziomem bezpłatnym zostanie usunięta, następna utworzona baza danych otrzyma poziom bezpłatny.

Zanim zaczniesz

Zanim utworzysz bazę danych, musisz wykonać te czynności:

  1. Jeśli jeszcze tego nie zrobisz, utwórz projekt w Firebase: w Firebase konsoli kliknij Dodaj projekt, a następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby utworzyć projekt w Firebase lub dodać usługi Firebase do istniejącego Google Cloud projektu.

  2. Przypisz odpowiednie role Identity and Access Management zgodnie z opisem w następnej sekcji.

Wymagane role

Aby tworzyć bazy danych i nimi zarządzać, musisz mieć rolę Owner lub Datastore Owner Identity and Access Management. Te role przyznają wymagane uprawnienia.

Wymagane uprawnienia

Aby zarządzać bazami danych, musisz mieć te uprawnienia:

  • Utwórz bazę danych: datastore.databases.create
  • Odczytaj konfigurację bazy danych: datastore.databases.getMetadata
  • Skonfiguruj bazę danych: datastore.databases.update
  • Usuń bazę danych: datastore.databases.delete
  • Sklonuj bazę danych: datastore.databases.clone

Tworzenie bazy danych

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

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

    Otwórz bazę danych Firestore

  2. Kliknij Dodaj bazę danych.
  3. Wybierz Wersja Enterprise. Kliknij Dalej.
  4. Wybierz Firestore z kompatybilnością z MongoDB.
  5. Wpisz identyfikator bazy danych.
  6. Wybierz lokalizację bazy danych.
  7. Kliknij Utwórz.
wiersz poleceń Firebase
firebase firestore:databases:create --edition EDITION DATABASE_ID \
--location=LOCATION
gcloud CLI

Użyj polecenia gcloud firestore databases create i ustaw --edition=enterprise.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--enable-mongodb-compatible-data-access

Zastąp następujące elementy:

Aby włączyć ochronę przed usunięciem, dodaj flagę --delete-protection. 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.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--delete-protection

Aby dodać tagi do bazy danych, użyj --tags flagi. Przykład:

  • --tags=123/environment=production,123/costCenter=marketing
  • --tags=tagKeys/333=tagValues/444
Terraform

Użyj zasobu google_firestore_database i ustaw database_edition na ENTERPRISE.

resource "google_firestore_database" "database" {
  name             = "DATABASE_ID"
  location_id      = "LOCATION"
  type             = "FIRESTORE_NATIVE"
  database_edition = "ENTERPRISE"

  // Optional
  delete_protection_state = "DELETE_PROTECTION_STATE"
}

Zastąp następujące elementy:

Aby włączyć ochronę przed usunięciem, ustaw delete_protection_state na DELETE_PROTECTION_ENABLED. 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 baz danych to identyfikatory, które spełniają te warunki:

  • Zawierają tylko litery, cyfry i łączniki (-).
  • Litery muszą być pisane małymi literami.
  • Pierwszy znak musi być literą.
  • Ostatni znak musi być literą lub cyfrą.
  • Mają co najmniej 4 znaki.
  • Mają maksymalnie 63 znaki.
  • Nie mogą być identyfikatorami UUID ani ich przypominać. Nie używaj np. identyfikatora f47ac10b-58cc-0372-8567-0e02b2c3d479.

Jeśli usuniesz bazę danych, nie możesz od razu ponownie użyć jej identyfikatora. Musisz odczekać co najmniej 5 minut.

Zabezpieczenie przed usunięciem

Użyj zabezpieczenia przed usunięciem, aby zapobiec przypadkowemu usunięciu bazy danych. Zabezpieczenie przed usunięciem działa w ten sposób:

  • Nie możesz usunąć bazy danych z włączonym zabezpieczeniem przed usunięciem, dopóki nie wyłączysz tego zabezpieczenia.
  • Zabezpieczenie przed usunięciem jest domyślnie wyłączone.
  • Możesz włączyć zabezpieczenie przed usunięciem podczas tworzenia bazy danych lub możesz zaktualizować konfigurację bazy danych, aby włączyć to zabezpieczenie.

Wyświetlanie baz danych

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

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

    Otwórz bazę danych Firestore

  2. Kliknij Cloud Firestore , aby wyświetlić wszystkie bazy danych w projekcie.
gcloud CLI

Aby wyświetlić listę wszystkich baz danych w projekcie, użyj gcloud firestore databases list polecenia.

gcloud firestore databases list

Wyświetlanie szczegółów bazy danych

Aby wyświetlić szczegóły pojedynczej bazy danych, użyj jednej z tych metod:

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

    Otwórz bazę danych Firestore

  2. Wybierz bazę danych z listy baz danych.
gcloud CLI

Użyj polecenia gcloud firestore databases describe:

gcloud firestore databases describe --database=DATABASE_ID

Zastąp DATABASE_ID identyfikatorem bazy danych.

Aktualizowanie konfiguracji bazy danych

Aby zaktualizować ustawienia konfiguracji bazy danych, użyj polecenia gcloud firestore databases update.

Za pomocą tego polecenia możesz zmienić, włączyć lub wyłączyć zabezpieczenie przed usunięciem.

Aktualizowanie ustawienia zabezpieczenia przed usunięciem

Aby włączyć zabezpieczenie przed usunięciem w bazie danych, użyj polecenia gcloud firestore databases update z flagą --delete-protection. Przykład:

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection

Zastąp DATABASE_ID identyfikatorem bazy danych.

Aby wyłączyć zabezpieczenie przed usunięciem w bazie danych, użyj polecenia gcloud firestore databases update z flagą --no-delete-protection. Przykład:

gcloud CLI
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ń. Usunięcie bazy danych nie wiąże się z opłatami za operacje usuwania.

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

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

    Otwórz bazę danych Firestore

  2. Wybierz bazę danych, którą chcesz usunąć.
  3. Kliknij Wyświetl więcej.
  4. Aby usunąć bazę danych, kliknij Usuń.
gcloud CLI

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ąć.

Klonowanie bazy danych

Możesz sklonować istniejącą bazę danych w wybranym znaczniku czasu do nowej bazy danych:

  • Sklonowana baza danych to nowa baza danych, która zostanie utworzona w tej samej lokalizacji co źródłowa baza danych.

    Aby utworzyć klon, Cloud Firestore używa danych odzyskiwania do określonego momentu (PITR) źródłowej bazy danych. Sklonowana baza danych zawiera wszystkie dane i indeksy.

  • Domyślnie sklonowana baza danych będzie szyfrowana w taki sam sposób jak źródłowa baza danych, czyli za pomocą domyślnego szyfrowania Google lub szyfrowania CMEK. Możesz określić inny typ szyfrowania lub użyć innego klucza do szyfrowania CMEK.

  • Znacznik czasu ma dokładność do minuty i określa moment w przeszłości w okresie zdefiniowanym przez okno PITR:

    • Jeśli w bazie danych jest włączona funkcja PITR, możesz wybrać dowolną minutę z ostatnich 7 dni (lub krócej, jeśli funkcja PITR została włączona mniej niż 7 dni temu).
    • Jeśli funkcja PITR nie jest włączona, możesz wybrać dowolną minutę z ostatniej godziny.
    • Najwcześniejsza sygnatura czasowa, którą możesz wybrać, znajduje się w opisie bazy danych .

Konsola

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

    Otwórz bazy danych

  2. W wierszu tabeli bazy danych, którą chcesz sklonować, kliknij Wyświetl więcej. Kliknij Klonuj. Pojawi się okno Utwórz klon.

  3. W oknie Utwórz klon podaj parametry klonowania bazy danych:

    1. W polu Nadaj klonowi identyfikator wpisz identyfikator bazy danych dla nowej sklonowanej bazy danych. Ten identyfikator bazy danych nie może być powiązany z istniejącą bazą danych.

    2. W polu Klonuj od wybierz moment, który ma być użyty do klonowania. Wybrany czas odpowiada znacznikowi czasu PITR z dokładnością do minuty.

  4. Kliknij Utwórz klon.

gcloud

Aby sklonować bazę danych, użyj polecenia gcloud firestore databases clone:

gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'

Zastąp następujące elementy:

Przykład:

gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'

Jeśli podczas klonowania bazy danych chcesz powiązać ją z tagami, użyj poprzedniego polecenia z flagą --tags, która jest opcjonalną listą par tagów KLUCZ=WARTOŚĆ do powiązania.

Przykład:

gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2

Domyślnie sklonowana baza danych będzie miała tę samą konfigurację szyfrowania co źródłowa baza danych. Aby zmienić konfigurację szyfrowania, użyj argumentu --encryption-type:

  • (Domyślnie) use-source-encryption: użyj tej samej konfiguracji szyfrowania co źródłowa baza danych.
  • google-default-encryption: użyj domyślnego szyfrowania Google.
  • customer-managed-encryption: użyj szyfrowania CMEK. W argumencie --kms-key-name określ identyfikator klucza.

Poniższy przykład pokazuje, jak skonfigurować szyfrowanie CMEK dla sklonowanej bazy danych:

gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'

Konfigurowanie uprawnień dostępu do poszczególnych baz danych

Za pomocą warunków Identity and Access Management możesz skonfigurować uprawnienia dostępu na poziomie poszczególnych baz danych. W tych przykładach używamy Google Cloud CLI do przypisywania dostępu warunkowego do co najmniej 1 bazy danych. Warunki IAM możesz też zdefiniować 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 te wartości:

  • PROJECT_ID: identyfikator projektu.
  • EMAIL: adres e-mail reprezentujący konkretne konto. Na przykład alice@example.com.
  • DATABASE_ID: identyfikator bazy danych.
  • TITLE: opcjonalny tytuł wyrażenia.
  • DESCRIPTION: opcjonalny opis wyrażenia.

Przyznawanie dostępu 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 wartości:

  • PROJECT_ID: identyfikator projektu.
  • EMAIL: adres e-mail reprezentujący konkretne konto. Na przykład alice@example.com.
  • DATABASE_ID: identyfikator bazy danych.
  • TITLE: opcjonalny tytuł wyrażenia.
  • DESCRIPTION: opcjonalny opis wyrażenia.

Usuwanie zasad dla danego członka i roli

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

Ustaw te wartości:

  • PROJECT_ID: identyfikator projektu.
  • EMAIL: adres e-mail reprezentujący konkretne konto. Na przykład alice@example.com.

Ograniczenia

W każdym projekcie możesz mieć maksymalnie 100 baz danych. Możesz skontaktować się z zespołem pomocy, aby poprosić o zwiększenie tego limitu.

Co dalej?