Na tej stronie opisujemy, jak tworzyć, aktualizować i usuwać Cloud Firestore bazy danych. W każdym projekcie możesz utworzyć wiele 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 w projekcie. 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:
-
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.
- 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
Utwórz bazę danych
Aby utworzyć bazę danych Cloud Firestore, użyj jednej z tych metod:
Firebase konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Kliknij Dodaj bazę danych.
- Wybierz wersję Enterprise. Kliknij Dalej.
- Wybierz Firestore w trybie natywnym.
- Wpisz identyfikator bazy danych.
- Wybierz lokalizację bazy danych. Kliknij Dalej.
-
Wybierz tryb początkowy dla Cloud Firestore Security Rules:
- Tryb testowy
- Dobry do rozpoczęcia pracy z bibliotekami klienta mobilnego i internetowego, ale umożliwia każdemu odczytywanie i nadpisywanie danych. Po zakończeniu testowania zapoznaj się z sekcją Zabezpieczanie danych.
- Tryb produkcji
- Odrzuca wszystkie odczyty i zapisy klientów mobilnych i internetowych. Uwierzytelnione serwery aplikacji (Node.js, Python, Java) nadal mogą uzyskiwać dostęp do bazy danych
- Kliknij Utwórz.
gcloud CLI
Użyj polecenia
gcloud firestore databases create
:
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --enable-firestore-data-access \ --enable-realtime-updates
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa regionu lub lokalizacji w wielu regionach Cloud Firestore lub region.
Identyfikator bazy danych
Prawidłowe identyfikatory baz danych to identyfikatory, które spełniają te wymagania:
- 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ą.
- Minimalna liczba znaków to 4.
- Maksymalna liczba znaków to 63.
- Nie może to być identyfikator UUID ani przypominać identyfikatora UUID. 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 tej funkcji.
- Zabezpieczenie przed usunięciem jest domyślnie wyłączone.
- Zabezpieczenie przed usunięciem możesz włączyć podczas tworzenia bazy danych lub możesz zaktualizować konfigurację bazy danych aby włączyć zabezpieczenie przed usunięciem.
Wyświetlanie baz danych
Aby wyświetlić listę baz danych, użyj jednej z tych metod:
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:
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 wyłączyć tę funkcję.
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) 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, 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
W konsoli Google Cloud otwórz stronę Bazy danych.
W wierszu tabeli bazy danych, którą chcesz sklonować, kliknij Wyświetl więcej. Kliknij Klonuj. Pojawi się okno Utwórz klon.
W oknie Utwórz klon podaj parametry klonowania bazy danych:
W polu Nadaj klonowi identyfikator wpisz identyfikator bazy danych nowej sklonowanej bazy danych. Ten identyfikator bazy danych nie może być powiązany z istniejącą bazą danych.
W polu Sklonuj z wybierz moment, który ma zostać użyty do klonowania. Wybrany czas odpowiada znacznikowi czasu PITR z dokładnością do minuty.
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 istniejącej bazy danych, którą chcesz sklonować. Nazwa ma format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.PITR_TIMESTAMP: a znacznik czasu PITR w formacie RFC 3339 z dokładnością do minuty. Na przykład:
2025-06-01T10:20:00.00Zlub2025-06-01T10:30:00.00-07:00.DESTINATION_DATABASE_ID: identyfikator 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 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 taką samą konfigurację szyfrowania jak ź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. Określ identyfikator klucza w argumencie--kms-key-name.
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'
wiersz poleceń Firebase
Aby sklonować bazę danych, użyj polecenia firebase firestore:databases:clone:
firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP' \
Zastąp następujące elementy:
SOURCE_DATABASE: nazwa istniejącej bazy danych, którą chcesz sklonować. Nazwa ma format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.DESTINATION_DATABASE: nazwa bazy danych dla nowej sklonowanej bazy danych. Nazwa ma format
projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID. Ta nazwa bazy danych nie może być powiązana z istniejącą bazą danych.PITR_TIMESTAMP: a znacznik czasu PITR w formacie RFC 3339 z dokładnością do minuty. Na przykład:
2025-06-01T10:20:00.00Zlub2025-06-01T10:30:00.00-07:00. Jeśli nie określisz tego parametru, wybrany snapshot będzie bieżącym czasem zaokrąglonym w dół do minuty.
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ś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. Określ identyfikator klucza w argumencie--kms-key-name.
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ładalice@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 reprezentujący konkretne konto. Na przykładalice@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ładalice@example.com.
Ograniczenia
W każdym projekcie możesz mieć maksymalnie 100 baz danych. Aby poprosić o zwiększenie tego limitu, skontaktuj się z zespołem pomocy.
Co dalej?
- Zapoznaj się z krótkim wprowadzeniem: tworzenie bazy danych i łączenie się z nią.
- Dowiedz się więcej o różnicach w zachowaniu.
- Dowiedz się więcej o Cloud Monitoring danych dotyczących Cloud Firestore.