Tworzenie baz danych i zarządzanie nimi

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

Wykorzystanie na poziomie bezpłatnym

Cloud Firestore oferuje poziom bezpłatny, który pozwala rozpocząć korzystanie z usługi bez opłat.

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

Zanim zaczniesz

Przed utworzeniem bazy danych musisz wykonać te czynności:

  1. Jeśli nie masz jeszcze projektu w Firebase, utwórz go: w konsoli Firebase 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 projektu Google Cloud.

  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 w usłudze Identity and Access Management. Te role przyznają 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
  • Konfigurowanie bazy danych: datastore.databases.update
  • Usuwanie bazy danych: datastore.databases.delete
  • Klonowanie bazy danych: datastore.databases.clone

Utwórz bazę danych

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

Konsola Firebase
  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 w trybie zgodnoś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 enterprise DATABASE_ID \n--location=LOCATION \n[--firestore-data-access FIRESTORE_ACCESS] \n[--mongodb-compatible-data-access MONGODB_ACCESS] \n[--realtime-updates REALTIME_UPDATES]

Zastąp następujące elementy:

  • DATABASE_ID: prawidłowy identyfikator bazy danych.
  • LOCATION: nazwa Cloud Firestoreregionu lub wielu regionów.
  • FIRESTORE_ACCESS: może to być ENABLED lub DISABLED. Domyślna wartość to ENABLED.
  • MONGODB_ACCESS: może to być ENABLED lub DISABLED. Domyślna wartość to DISABLED.
  • REALTIME_UPDATES: może to być ENABLED lub DISABLED. Jeśli opcja firestore-data-access jest włączona, domyślnie jest to ENABLED.
interfejs wiersza poleceń gcloud

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 flagi --tags. 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:

  • zawiera 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 go przypominać. Nie używaj na przykład identyfikatora takiego jak f47ac10b-58cc-0372-8567-0e02b2c3d479.

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

Zabezpieczenie przed usunięciem

Użyj ochrony 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łączoną ochroną przed usunięciem, dopóki nie wyłączysz tej ochrony.
  • 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, aby włączyć tę ochronę.

Wyświetlanie baz danych

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

Konsola Firebase
  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.
interfejs wiersza poleceń gcloud

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

gcloud firestore databases list

Wyświetlanie szczegółów bazy danych

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

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

    Otwórz bazę danych Firestore

  2. Wybierz bazę danych z listy baz danych.
interfejs wiersza poleceń gcloud

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.

Użyj tego polecenia, aby zmienić, 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:

interfejs wiersza poleceń 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:

interfejs wiersza poleceń 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ń. Usunięcie bazy danych nie powoduje naliczenia opłat za operacje usuwania.

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

Konsola Firebase
  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. Kliknij Usuń, aby usunąć bazę danych.
interfejs wiersza poleceń 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ąć.

Klonowanie bazy danych

Możesz sklonować istniejącą bazę danych z wybraną sygnaturą czasową 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 ze ź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, przy użyciu domyślnego szyfrowania Google lub szyfrowania CMEK. Możesz określić inny typ szyfrowania lub użyć innego klucza do szyfrowania CMEK.

  • Sygnatura czasowa ma poziom szczegółowości wynoszący 1 minutę i określa moment w przeszłości w okresie zdefiniowanym przez okno odzyskiwania do określonego momentu:

    • Jeśli w bazie danych jest włączone odzyskiwanie do określonego momentu, możesz wybrać dowolną minutę z ostatnich 7 dni (lub mniej, jeśli odzyskiwanie do określonego momentu zostało włączone mniej niż 7 dni temu).
    • Jeśli odzyskiwanie do określonego momentu nie jest włączone, możesz wybrać dowolną minutę w ciągu ostatniej godziny.
    • Najwcześniejszą sygnaturę czasową, którą możesz wybrać, znajdziesz w opisie bazy danych.

Konsola Google Cloud

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

    Otwórz stronę 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 Podaj identyfikator klona 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 punkt w czasie, który ma zostać użyty do klonowania. Wybrany czas odpowiada sygnaturze czasowej odzyskiwania do określonego momentu 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:

  • SOURCE_DATABASE: nazwa bazy danych, którą chcesz sklonować. Nazwa ma format projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.

  • PITR_TIMESTAMP: sygnatura czasowa odzyskiwania do określonego momentu w formacie RFC 3339 z dokładnością do minuty. Na przykład: 2025-06-01T10:20:00.00Z lub 2025-06-01T10:30:00.00-07:00.

  • DESTINATION_DATABASE_ID: identyfikator bazy danych dla nowej sklonowanej bazy danych. Ten identyfikator bazy danych nie może być powiązany z istniejącą bazą danych.

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 niektórymi tagami, użyj poprzedniego polecenia z flagą --tags, która jest opcjonalną listą par KLUCZ=WARTOŚĆ tagów 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 taką samą konfigurację szyfrowania jak źródłowa baza danych. Aby zmienić konfigurację szyfrowania, użyj argumentu --encryption-type:

  • (Domyślna) 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 podaj 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

Możesz użyć warunków Identity and Access Management, aby skonfigurować uprawnienia dostępu na poziomie bazy danych. W poniższych przykładach używamy Google Cloud CLI do przypisywania dostępu warunkowego do co najmniej 1 bazy danych. Możesz też zdefiniować warunki IAM 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, który reprezentuje 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 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 te wartości:

  • PROJECT_ID: identyfikator projektu,
  • EMAIL: adres e-mail, który reprezentuje 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 użytkownika 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, który reprezentuje konkretne konto. Na przykład: alice@example.com.

Ograniczenia

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

Co dalej?