Dokumentacja poleceń interfejsu wiersza poleceń Firebase dla Data Connect

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 itp.

Polecenia konfiguracji

Dodawanie aplikacji Data Connect do projektu Firebase

firebase init

Aby skonfigurować nową konfigurację projektu lokalnego, użyj polecenia firebase init. Ten przepływ pracy tworzy lub aktualizuje pliki konfiguracyjne 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 ramach konfiguracji usługi, interfejs wiersza poleceń poprosi o podanie nazwy i lokalizacji nowej usługi oraz o wybranie, 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 interfejsu wiersza poleceń umożliwia skonfigurowanie emulatorów, w tym emulatora Data Connect.

Data Connect polecenia emulatora

Uruchom emulator usługi Data Connect

emulatory:start/exec

firebase emulators:start/exec

Używaj wersji Local Emulator Suite emulatora Data Connect w trybie interaktywnym z tagiem start lub w trybie nieinteraktywnym opartym na skryptach z funkcją exec.

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 zalecanych metodach związanych 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 usług Data Connect powiązane z plikiem firebase.json. W razie potrzeby przeprowadzana jest migracja schematu.

Command Opis

wdrożenie Firebase

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.

Flagi –-only umożliwiają przekazywanie wartości rozdzielonych przecinkami w celu wdrożenia dowolnego podzbioru 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 schemat lokalny usługi ze schematem bieżącym 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 nie zostanie podany, wydrukuje się różnica między wszystkimi usługami 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 opisem w artykule Przenoszenie schematu w trybie ścisłym lub zgodnym.

W środowiskach interaktywnych interfejs wiersza poleceń wyświetla każde polecenie SQL migracji (oraz informacje o tym, czy jest ono niszczące) i prosi o wprowadzenie zmian. Przekazanie flagi --force jest równoznaczne z akceptacją wszystkich monitów.

W środowiskach nieinteraktywnych:

  • bez --force, wprowadzane są tylko zmiany nieniszczące. Jeśli występują zmiany, które mogą spowodować utratę danych, interfejs CLI jest przerywany bez wprowadzania zmian.
  • przy użyciu funkcji --force wszystkie zmiany zostały wprowadzone. Jeśli zawiera ona szkodliwe zmiany, zostaną one wydrukowane i pojawi się pytanie, czy chcesz kontynuować, chyba że jest dostępna flaga --force.
Command Opis

firebase dataconnect:sql:migrate

Flaga Opis

identyfikator usługi

Przenieś bazę danych z 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ą niezmienione.

Te tryby weryfikacji schematu i sprawdzone metody migracji schematu są opisane w przewodniku po zarządzaniu schematami i oprogramowaniem sprzęgającym

Tryb sprawdzania jest definiowany za pomocą klucza schemaValidation w pliku dataconnect.yaml. Jeśli parametr schemaValidation nie jest określony, interfejs wiersza poleceń stosuje zgodne zmiany i wyświetla prompt przed wykonaniem ścisłych zmian. Więcej informacji znajdziesz w dokumentacji konfiguracji.

Polecenia pakietu SDK

Generowanie pakietów SDK

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

To polecenie generuje pakiety SDK o określonych typach zadeklarowane w pliku connector.yaml.

Zapoznaj się też z przewodnikami dotyczącymi pakietów SDK na potrzeby witryn internetowych, pakietów SDK na Androidapakietó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 uda, błędy zostaną wydrukowane jako standardowe, wygenerowany kod nie zostanie zmieniony, a polecenie będzie nadal wykonywane.

–-tylko ConnectorId:platforma

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 usług lub użytkowników 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ć SELECT operacji na wszystkich tabelach w określonym schemacie.
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 zapisu i odczytu w bazie danych.

Możesz wykonywać operacje SELECT, INSERT, UPDATE, DELETETRUNCATE 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 połączenia z użytkownikiem 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.
Przyznano użytkownikom korzystającym z roles/cloudsql.admin i nie można go przyznać bezpośrednio w interfejsie wiersza poleceń Firebase
Command Opis

firebase dataconnect:sql:grant

Flaga/parametr Opis

-R, --role role

Rola SQL do przyznania (jedna z: właściciel, zapisujący lub odczytujący).

-E, --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 CLI na format JSON do analizy przez inne narzędzia.
  • W razie potrzeby --noninteractive i --interactive zastąpią automatyczne wykrywanie środowisk innych niż TTY.