Interfejs wiersza poleceń Firebase to narzędzie, które umożliwia zarządzanie usługami i usługami Firebase oraz ich konfigurowanie z wiersza poleceń.
Interfejs wiersza poleceń udostępnia polecenia, których można używać do wykonywania różnych Data Connectzadań, takich jak tworzenie nowego projektu Data Connect, inicjowanie odpowiedniego lokalnego katalogu roboczego, konfigurowanie emulatora Data Connect, wyświetlanie zasobów Data Connect, generowanie pakietów SDK klienta i inne.
Polecenia konfiguracji
Dodawanie aplikacji Data Connect do projektu Firebase
firebase init
Aby skonfigurować nową konfigurację projektu lokalnego, użyj polecenia firebase init
. Ten proces tworzy lub aktualizuje pliki konfiguracji Firebase w Twoim katalogu.
firebase init
Proces firebase init
poprowadzi Cię przez konfigurowanie usługi i bazy danych oraz opcjonalnie przez instalowanie emulatora Data Connect i konfigurowanie wygenerowanych pakietów SDK.
Konfiguracja usługi i bazy danych
Jeśli wybierzesz dataconnect
w przypadku konfiguracji usługi, interfejs wiersza poleceń poprosi o nową nazwę usługi i lokalizację oraz o to, czy chcesz połączyć istniejące wystąpienie Cloud SQL for PostgreSQL, czy utworzyć nowe.
Jeśli połączona jest istniejąca instancja, interfejs wiersza poleceń sprawdza, czy istnieją kompatybilne ustawienia, takie jak uwierzytelnianie IAM i publiczne adresy IP.
Local Emulator Suite konfiguracja
Proces w CLI umożliwia konfigurowanie emulatorów, w tym emulatora Data Connect.
Data Connect polecenia emulatora
Uruchom emulator Data Connect
emulatory:start/exec
firebase emulators:start/exec
Użyj wersji Local Emulator Suite emulatora Data Connect w trybie interaktywnym (start
) lub w trybie nieinteraktywnym (exec
) sterowanym przez skrypt.
Eksportowanie i importowanie lokalnych danych PostgreSQL
Aby umożliwić prototypowanie i testowanie lokalne oraz ciągłą integrację, możesz eksportować dane zapisane w lokalnym wystąpieniu bazy danych i importować je między iteracjami rozwoju i przeprowadzeniem testów.
Dane eksportowane są jako zrzuty dysków lokalnej bazy danych PostgreSQL.
Data Connect oferuje 3 metody eksportowania/importowania:
- automatycznego eksportowania/importowania skonfigurowanego w
firebase.json
, aby tworzyć kopie zapasowe migawek podczas zamykania i uruchamiania emulatora; - Ręczny eksport/import za pomocą interfejsu wiersza poleceń
- Ręczny eksport i import za pomocą interfejsu rozszerzenia VS Code
automatyczny eksport i import skonfigurowany w Twoim firebase.json
.
Aby tworzyć kopie zapasowe danych między sesjami programowania, określ automatyczną lokalizację kopii zapasowej podczas sekwencji firebase init
. Ta lokalizacja jest przechowywana w Twoim pliku firebase.json
w polu emulators.dataconnect.dataDir
. Wszystkie zmiany danych zostaną automatycznie zapisane tutaj między uruchomieniami emulatora, więc jest to przydatne podczas testowania i eksploracji na urządzeniu lokalnym.
Eksport ręczny: emulators:export
i emulators:start/exec --import
Gdy emulowany system Data Connect jest uruchomiony, w oddzielnym terminalu uruchom polecenie firebase emulators:export
, aby zapisać migawkę danych.
Następnie możesz uruchomić emulator z tego migawka za pomocą flagi --import
.
# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>
# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>
Ręczny eksport/import: rozszerzenie VS Code
Gdy emulator jest uruchomiony, w interfejsie rozszerzenia VS Code kliknij przycisk Eksportuj dane emulatora, aby wyeksportować bieżącą zawartość bazy danych. Domyślna lokalizacja eksportu to katalog exportedData
w katalogu głównym katalogu projektu.
Możesz importować te dane za pomocą interfejsu wiersza poleceń w sposób opisany w poprzedniej sekcji. Możesz też zaimportować te dane przed uruchomieniem emulatora w VS Code, klikając link Konfigurowanie emulatora i ustawiając Ścieżka importu.
Polecenia zarządzania schematami i połączeniami
Ta sekcja zawiera informacje o poleceniach interfejsu wiersza poleceń, których używasz do zarządzania schemami i złączami.
Informacje o przypadkach użycia i zalecane metody związane z tymi poleceniami znajdziesz w przewodniku Schemat i sprzęganie.
Wdrażanie zasobów schematu i oprogramowania sprzęgającego
wdróż
firebase deploy
To polecenie wdraża zasoby dla usług Data Connect powiązanych z plikiem firebase.json. W razie potrzeby przeprowadzana jest migracja schematu.
Command | Opis | |
---|---|---|
firebase deploy |
Flaga | Opis |
–-only dataconnect |
Wdrożyć schematy i złącza dla wszystkich usług Data Connect w tym projekcie, ale nie wdrażać innych zasobów usług Firebase. | |
–-only dataconnect:serviceId |
Wdrażanie schematu i złączników w przypadku wybranej usługi Data Connect. | |
–-only dataconnect:serviceId:connectorId |
Wdrażanie pojedynczego łącznika na potrzeby określonej usługi Data Connect. | |
–-only dataconnect:serviceId:schema |
Wdróż schemat dla określonej usługi Data Connect. |
Dzięki flagom –-only
możesz przekazywać wartości rozdzielone przecinkami, aby wdrożyć dowolny podzbiór zasobów.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
Wyświetlanie listy usług, schematów i złączeń Data Connect
dataconnect:services:list
firebase dataconnect:services:list
To polecenie wyświetla podstawowe informacje o usługach, schematach i złączach wdrożonych w projekcie.
Porównywanie i migracja schematów SQL
dataconnect:sql:diff
firebase dataconnect:sql:diff
To polecenie porównuje lokalny schemat usługi z bieżącym schematem odpowiedniej bazy danych Cloud SQL. Wypisuje polecenia, które zostaną wykonane, aby przenieść bazę danych do nowego schematu.
Command | Opis | |
---|---|---|
firebase dataconnect:sql:diff |
Flaga/parametr | Opis |
serviceId |
Określ usługę. Jeśli pominiesz ten parametr, różnice zostaną wydrukowane dla wszystkich usług w pliku firebase.json. |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
To polecenie stosuje lokalne zmiany schematu do bazy danych Cloud SQL usługi.
Gdy skonfigurujesz nowy lokalny projekt Data Connect za pomocą domyślnego pliku dataconnect.yaml
, polecenie dataconect:sql:migrate
będzie wyświetlać prompty dotyczące wprowadzania zmian wymaganych i opcjonalnych, a dopiero potem będzie je wykonywać. Możesz zmienić to zachowanie, aby zawsze uwzględniać lub ignorować opcjonalne zmiany, aktualizując konfigurację dataconnect.yaml
zgodnie z instrukcjami w artykule Przeniesienie schematu w trybie ścisłym lub zgodnym.
W środowiskach interaktywnych interfejs wiersza poleceń wyświetla każde instrukcja SQL migracji (oraz informacje o tym, czy jest ona destruktywna) i prosi o wprowadzenie zmian, które chcesz zastosować.
Przekazanie flagi --force
jest równoznaczne z akceptacją wszystkich promptów.
W nieinteraktywnych środowiskach:
- bez
--force
, wprowadzane są tylko zmiany nieniszczące. Jeśli występują zmiany niszczycielskie, interfejs CLI jest przerywany bez wprowadzania zmian. - z
--force
, wszystkie zmiany zostały wprowadzone. Jeśli obejmuje to jakiekolwiek zmiany, które mogą spowodować utratę danych, zostaną one wydrukowane, a użytkownik zobaczy pytanie, czy chce kontynuować. Nie dotyczy to flagi--force
.
Command | Opis | |
---|---|---|
firebase dataconnect:sql:migrate |
Flaga | Opis |
serviceId |
Przenieść bazę danych dla określonej usługi. serviceId jest wywnioskowany, jeśli projekt ma tylko jedną usługę. | |
–-force |
automatycznie akceptować prompty; |
Podobnie jak w przypadku innych oznaczeń --only
możesz podać wiele usług rozdzielonych przecinkami.
Migracja schematu w trybie rygorystycznym lub zgodnym
Migracje schematu Data Connect mają 2 różne tryby sprawdzania poprawności schematu: ścisły i zgodny. Walidacja w rygorystycznym trybie wymaga, aby schemat bazy danych dokładnie pasował do schematu aplikacji, zanim będzie można go wdrożyć. Weryfikacja w trybie zgodności wymaga, aby schemat bazy danych był zgodny ze schematem aplikacji. Oznacza to, że elementy w bazie danych, których nie używa schemat aplikacji, pozostają niezmodyfikowane.
Te tryby sprawdzania schematu i sprawdzone metody dotyczące migracji schematu znajdziesz w przewodniku dotyczącym zarządzania schematami i łącznikami.
Tryb sprawdzania jest definiowany za pomocą klucza schemaValidation
w pliku dataconnect.yaml
. Jeśli parametr schemaValidation
nie jest określony, interfejs wiersza poleceń stosuje zmiany zgodne z protokołem i wyświetla komunikat przed wykonaniem ścisłych zmian. Zobacz dokumentację konfiguracji.
Polecenia pakietu SDK
Generowanie pakietów SDK
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
To polecenie generuje typowane pakiety SDK zadeklarowane w pliku connector.yaml.
Zapoznaj się też z przewodnikami dotyczącymi pakietów SDK na potrzeby witryn internetowych, pakietów SDK na Androida i pakietów SDK na iOS.
Command | Opis | |
---|---|---|
firebase dataconnect:sdk:generate |
Flaga | Opis |
–-watch |
Utrzymuje proces i generuje nowe pakiety SDK za każdym razem, gdy zapiszesz zmiany w plikach GQL schematu i złącza. Jeśli generowanie się nie powiedzie, błędy zostaną wydrukowane na wyjściu standardowym, wygenerowany kod nie ulegnie zmianie, a polecenie będzie nadal działać. |
|
–-only connectorId:platform |
generować pakiety SDK tylko dla jednej platformy i jednego łącznika, |
Flagi –only
umożliwiają przekazywanie wartości rozdzielonych przecinkami.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Polecenia zarządzania Cloud SQL
Przyznawanie ról SQL w Cloud SQL
dataconnect:sql:grant
firebase dataconnect:sql:grant
Data Connect działa na Twojej własnej instancji PostgreSQL hostowanej w Cloud SQL. W niektórych przypadkach możesz chcieć uzyskać bezpośredni dostęp do bazy danych, aby wysłać zapytanie lub zaktualizować dane wygenerowane przez aplikacje Data Connect. Aby to zrobić, musisz przypisać jednemu z kont użytkowników lub kont usługi jedną z ról zdefiniowanych w tej sekcji.
Szczegółowe informacje o przyznanych rolach znajdziesz w artykule Role użytkownika PostgreSQL.
Rola | Rola SQL | Uprawnienia | Wykorzystanie | Grantable |
---|---|---|---|---|
przeglądający | firebasereader_<db_name>_<schema_name> |
Dostęp tylko do odczytu do bazy danych. Może wykonywać operacje SELECT na wszystkich tabelach w ramach określonego schematu. |
To idealne rozwiązanie w przypadku użytkowników lub usług, które wymagają pobierania danych, ale nie ich modyfikacji. | Tak |
zapisujący | firebasewriter_<db_name>_<schema_name> |
Uprawnienia do odczytu i zapisu do bazy danych. Możesz wykonywać operacje SELECT , INSERT , UPDATE , DELETE i TRUNCATE na wszystkich tabelach w schemacie. |
Odpowiedni dla użytkowników lub usług, które muszą modyfikować dane w bazie danych. | Tak |
właściciel | firebaseowner_<db_name>_<schema_name> |
Właściciel schematu. Ma wszystkie uprawnienia do wszystkich tabel i sekwencji w schemacie. |
Ta rola w połączeniu z rolą uprawnień roles/cloudsql.client przyznaje uprawnienia do migracji bazy danych. Na przykład podczas dzwonienia do firebase dataconnect:sql:migrate . |
Tak |
administrator | superużytkownik | root | cloudsqlsuperuser |
Wbudowana rola superużytkownika z pełnymi uprawnieniami do bazy danych. Oprócz uprawnień właściciela może tworzyć i usuwać schematy, instalować rozszerzenia i wykonywać inne zadania administracyjne. Dostęp do niego w CLI uzyskujesz, logując się jako „firebasesuperuser”. |
Wymagane do instalowania rozszerzeń, tworzenia początkowego schematu i przyznawania innym użytkownikom dowolnych ról SQL. Jeśli użytkownik, który nie jest administratorem, potrzebuje uprawnień superużytkownika, migracja zakończy się niepowodzeniem, a użytkownik zostanie poproszony o poproszenie administratora bazy danych (czyli użytkownika z uprawnieniami roles/cloudsql.admin ), aby ten uruchomił polecenia SQL z uprawnieniami. |
Przyznawane użytkownikom z uprawnieniami roles/cloudsql.admin i nie można ich przyznać bezpośrednio z poziomu wiersza poleceń Firebase |
Command | Opis | |
---|---|---|
firebase dataconnect:sql:grant |
Flaga/parametr | Opis |
-R, --role role |
Rola SQL do przyznania: właściciel, zapisujący lub odczytujący. | |
-E, --email email_address |
Adres e-mail użytkownika lub konta usługi, któremu chcesz przypisać rolę. |
Opcje globalne
Te opcje globalne mają zastosowanie do wszystkich poleceń:
--json
przełącza dane wyjściowe wiersza poleceń na format JSON do analizowania przez inne narzędzia.- W razie potrzeby
--noninteractive
i--interactive
zastąpią automatyczne wykrywanie środowisk innych niż TTY.