Na tej stronie dowiesz się, jak tworzyć, aktualizować i usuwać bazy danych Cloud Firestore. W ramach 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 wiersza poleceń Google Cloud domyślnie łączą się z bazą danych (default)
.
(default)
.
Wymagane role
Aby tworzyć bazy danych i nimi zarządzać, musisz mieć rolę Owner
lub Datastore Owner
w ramach funkcji zarządzania tożsamością i dostępem. Te role przyznają wymagane uprawnienia.
Wymagane uprawnienia
Aby zarządzać bazami danych, musisz mieć te uprawnienia:
- Utwórz bazę danych:
datastore.databases.create
- Czytanie konfiguracji bazy danych:
datastore.databases.getMetadata
- Skonfiguruj bazę danych:
datastore.databases.update
- Usuwanie bazy danych:
datastore.databases.delete
Utwórz bazę danych
Aby utworzyć bazę danych, użyj jednej z tych metod:
Konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Jeśli jest to Twoja pierwsza nazwana baza danych, kliknij Dodaj bazę danych.
- W przeciwnym razie kliknij (domyślnie), a potem Dodaj bazę danych.
- 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:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestore regionu lub regionu wieloregionowego.
- DATABASE_TYPE:
firestore-native
dla trybu natywnego lubdatastore-mode
w trybie Datastore.
--delete-protection
to opcjonalna flaga umożliwiająca ochronę przed usunięciem.
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.
wiersz poleceń Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Zastąp następujące elementy:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestore wielu regionów lub regionów.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
lubDISABLED
.
Utworzona baza danych jest zawsze w trybie natywnym Firestore.
--delete-protection
to opcjonalny argument 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. To ustawienie jest domyślnie 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:
- DATABASE_ID: prawidłowy identyfikator bazy danych.
- LOCATION: nazwa Cloud Firestore regionu lub regionu wieloregionowego.
- DATABASE_TYPE:
FIRESTORE_NATIVE
w trybie natywnym lubDATASTORE_MODE
w trybie Datastore. - DELETE_PROTECTION_ENABLEMENT: może to być
DELETE_PROTECTION_ENABLED
lubDELETE_PROTECTION_DISABLED
.
delete_protection_state
to opcjonalny argument umożliwiający włączenie ochrony przed usunięciem. Nie możesz usunąć bazy danych, która ma 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 (default)
oraz identyfikatory zgodne z tymi zasadami:
- Może zawierać tylko litery, cyfry i łączniki (
-
). - Litery muszą być małe.
- Pierwszy znak musi być literą.
- Ostatni znak musi być literą lub cyfrą.
- Składać się z co najmniej 4 znaków.
- Może mieć maksymalnie 63 znaki.
- Nie może być identyfikatorem UUID ani go przypominać. Nie używaj na przykład dokumentu tożsamości takiego jak
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Jeśli usuniesz bazę danych, nie możesz od razu ponownie użyć identyfikatora bazy danych. Musi minąć 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, gdy jest włączona ochrona przed usunięciem, dopóki nie wyłączysz tej ochrony. Ochrona przed usunięciem jest domyślnie wyłączona. Możesz włączyć ochronę przed usunięciem podczas tworzenia bazy danych lub zaktualizować jej konfigurację, aby włączyć tę ochronę.
Konfigurowanie Cloud Firestore Security Rules w bazach danych
Użyj interfejsu wiersza poleceń Firebase, aby wdrożyć Cloud Firestore Security Rules do każdej z Twoich baz danych. Zapoznaj się z przewodnikiem po zarządzaniu usługą Cloud Firestore Security Rules i jej wdrażaniem.
uzyskiwanie dostępu do zadanej 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 (default)
Cloud Firestore w projekcie. Aby utworzyć klienta połączonego z nazwaną bazą danych, ustaw identyfikator bazy danych podczas tworzenia wystąpienia klienta.
Wyświetlanie baz danych
Aby wyświetlić listę baz danych, użyj jednej z tych metod:
Konsola
W konsoli Google Cloud otwórz stronę Bazy danych.
gcloud
Aby wyświetlić listę wszystkich baz danych w projekcie, użyj polecenia gcloud firestore databases list
.
gcloud firestore databases list
wiersz poleceń Firebase
Aby wyświetlić listę wszystkich baz danych w projekcie, użyj polecenia firebase firestore:databases:list
.
firebase firestore:databases:list
Wyświetlanie szczegółów bazy danych
Aby wyświetlić szczegóły pojedynczej bazy 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.
Aktualizowanie 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.
Zmień ustawienie 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 włączona jest ochrona przed usunięciem, musisz najpierw wyłączyć tę ochronę.
Jeśli baza danych zawiera dane wyszukiwania App Engine lub encje blob, musisz najpierw je usunąć.
Usunięcie bazy danych nie powoduje automatycznego usunięcia z niej żadnych Eventarcwyzwalaczy. Wyzwalacz przestaje dostarczać zdarzenia, ale nadal istnieje, dopóki go nie usuniesz.
Konsola
-
W konsoli Firebase otwórz stronę Baza danych Firestore.
- Na karcie Dane, nad widokiem tabeli danych dla bazy danych kliknij i wybierz Usuń bazę danych.
- 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 Identity and Access Management, aby skonfigurować uprawnienia dostępu na poziomie bazy danych. W poniższych przykładach do przypisywania dostępu warunkowego do jednej lub więcej baz danych używamy interfejsu wiersza poleceń Google Cloud. Możesz też zdefiniować warunki uprawnień w konsoli Google Cloud.
Wyświetlanie istniejących zasad uprawnień
gcloud projects get-iam-policy PROJECT_ID
Ustaw wartość 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 opcje:
PROJECT_ID
: identyfikator projektuEMAIL
: 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 wszystkim oprócz jednej 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 opcje:
PROJECT_ID
: identyfikator projektuEMAIL
: 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.
Usuwanie zasad dotyczących danego użytkownika i roli
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Ustaw następujące opcje:
PROJECT_ID
: identyfikator projektuEMAIL
: 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.
- firestore.googleapis.com/Database
- firestore_instance(starsza wersja)
Aby sprawdzić dane zbiorcze na poziomie bazy danych, otwórz firestore.googleapis.com/Database
. Wskaźniki raportowane w sekcji firestore_instance
są agregowane na poziomie projektu.
Ograniczenia
- W ramach projektu możesz utworzyć maksymalnie 100 baz danych. 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 z wyszukiwarki GAE. Aby usunąć dane wyszukiwania z GAE, użyj interfejsu index delete API. Jeśli dane z wyszukiwarki GAE zostały niedawno usunięte, może minąć pewien czas, zanim będzie można usunąć bazę danych. - Nie możesz usunąć bazy danych
(default)
, jeśli zawiera ona obiekty blob. Aby usunąć dane z Blobstore, użyj interfejsu Blobstore delete API. Aby sprawdzić, czy baza danych(default)
zawiera dane Blobstore, uruchom w konsoli Google Cloud to zapytanie GQL:SELECT * FROM __BlobInfo__
. - Nie możesz ponownie użyć identyfikatora bazy danych przez 5 minut od usunięcia.
- Wersja 1 usługi Cloud Functions nie obsługuje nazwanych baz danych Firestore. Aby skonfigurować zdarzenia dla nazwanych baz danych, użyj reguł Cloud Firestore (2 generacji).
- Wyzwalacze funkcji Firestore w wersji 1 i wyzwalacze zdarzeń Firestore mogą przestać działać po usunięciu bazy danych, nawet jeśli zostanie utworzona nowa baza danych o tej samej nazwie.