Dokumentacja poleceń interfejsu wiersza poleceń Firebase dla Data Connect

Firebase to narzędzie, które umożliwia zarządzanie usługami Firebase i konfigurowanie ich z wiersza poleceń.

Interfejs CLI udostępnia polecenia, których można używać do wykonywania różnych zadań, takich jak tworzenie nowego Data Connectprojektu, inicjowanie odpowiedniego lokalnego katalogu roboczego, konfigurowanie Data Connectemulatora, wyświetlanie listy zasobów Data Connect, generowanie pakietów SDK klienta i nie tylko.Data Connect

Polecenia konfiguracji

Dodawanie aplikacji Data Connect do projektu Firebase

firebase init

Użyj firebase init, aby skonfigurować nową lokalną konfigurację projektu. Ten proces tworzy lub aktualizuje pliki konfiguracyjne Firebase w Twoim katalogu.

firebase init

Proces firebase init przeprowadzi Cię przez konfigurowanie usługi i bazy danych, a także opcjonalnie przez instalowanie emulatora Data Connect i konfigurowanie wygenerowanych pakietów SDK.

Konfigurowanie usługi i bazy danych

Jeśli wybierzesz dataconnect w przypadku konfiguracji usługi, interfejs wiersza poleceń poprosi Cię o podanie nowej nazwy usługi i lokalizacji oraz o to, czy chcesz połączyć istniejącą instancję Cloud SQL for PostgreSQL, czy utworzyć nową.

Jeśli połączona jest istniejąca instancja, interfejs wiersza poleceń sprawdza zgodne 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 Data Connect

emulators:start/exec

firebase emulators:start/exec

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

Eksportowanie i importowanie lokalnych danych PostgreSQL

Aby obsługiwać lokalne prototypowanie i testowanie oraz ciągłą integrację, możesz eksportować dane przechowywane w lokalnej instancji bazy danych i importować je między iteracjami programowania i przebiegami testów.

Eksporty są przechowywane jako zrzuty lokalnej bazy danych PostgreSQL.

Data Connect oferuje 3 metody eksportowania i importowania:

  • Automatyczny eksport/import skonfigurowany w firebase.json, aby tworzyć kopie zapasowe stanu po wyłączeniu i uruchomieniu emulatora
  • Ręczny eksport i import za pomocą interfejsu wiersza poleceń
  • Ręczny eksport/import za pomocą interfejsu rozszerzenia VS Code

Automatyczne eksportowanie i importowanie skonfigurowane w firebase.json

Aby tworzyć kopie zapasowe danych między sesjami programistycznymi, w trakcie sekwencji firebase init określ lokalizację automatycznej kopii zapasowej. Ta lokalizacja jest przechowywana w firebase.json w polu emulators.dataconnect.dataDir. Wszystkie wprowadzone zmiany danych będą automatycznie zapisywane między uruchomieniami emulatora, co jest przydatne podczas testowania i eksperymentowania lokalnego.

Eksport ręczny: emulators:export i emulators:start/exec --import

Gdy emulator Data Connect jest uruchomiony, w osobnym terminalu uruchom polecenie firebase emulators:export, aby zapisać migawkę danych. Następnie możesz uruchomić emulator z tego stanu, używając 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 i import: rozszerzenie VS Code

W interfejsie rozszerzenia VS Code, gdy emulator jest uruchomiony, kliknij przycisk Eksportuj dane emulatora, aby wyeksportować dane z bieżącej bazy danych. Domyślna lokalizacja eksportu to katalog exportedData w katalogu głównym projektu.

Możesz zaimportować te dane za pomocą interfejsu wiersza poleceń, jak opisano w poprzedniej sekcji. Możesz też zaimportować te dane przed uruchomieniem emulatora w VS Code, klikając link Skonfiguruj emulator i ustawiając Ścieżkę importu.

Polecenia zarządzania schematami i łącznikami

Ta sekcja zawiera informacje o poleceniach interfejsu wiersza poleceń, których używasz do zarządzania schematami i łącznikami.

Przykłady użycia i zalecane praktyki związane z tymi poleceniami znajdziesz w przewodniku po schematach i złączach.

Wdrażanie schematów i łączników

wdróż

firebase deploy

To polecenie wdraża zasoby usług Data Connect indeksowane w pliku firebase.json. W razie potrzeby przeprowadzana jest migracja schematuaktualizacja łącznika.

Command Opis

firebase deploy

Flaga Opis

–-only dataconnect

Wdrażanie schematów i łączników dla wszystkich usług Data Connect w tym projekcie, ale bez wdrażania innych zasobów usług Firebase.

–-only dataconnect:serviceId

Wdrażanie schematu i łączników dla określonej usługi Data Connect.

–-only dataconnect:serviceId:connectorId

Wdrażanie pojedynczego łącznika dla określonej usługi Data Connect.

--only dataconnect:serviceId:schema

Wdróż schemat dla określonej usługi Data Connect.

Za pomocą flagi –-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łączy Data Connect

dataconnect:services:list

firebase dataconnect:services:list

To polecenie wyświetla podstawowe informacje o usługach, schematach i łącznikach wdrożonych w projekcie.

Porównywanie i migrowanie schematów SQL

Gdy uruchomisz polecenie firebase deploy, interfejs wiersza poleceń przed wdrożeniem aktualizacji przeprowadzi porównanie schematu SQL. Możesz też przeprowadzić porównanie i zaktualizować dane bezpośrednio za pomocą zestawu poleceń dataconnect: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. Wyświetla polecenia, które zostaną uruchomione, aby przenieść bazę danych do nowego schematu.

Command Opis

firebase dataconnect:sql:diff

Flaga/parametr Opis

serviceId

Określ usługę. Jeśli ten argument zostanie pominięty, wyświetli różnice dla wszystkich usług w pliku firebase.json.

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

To polecenie stosuje lokalne zmiany schematu w bazie danych Cloud SQL usługi.

Gdy skonfigurujesz nowy projekt lokalny Data Connect z domyślnymdataconnect.yaml plikiem, polecenie dataconnect:sql:migratedataconnect.yaml wyświetli prośbę o wprowadzenie wymaganych zmian, a następnie o wprowadzenie zmian opcjonalnych, zanim zostaną one wykonane. Możesz zmienić to zachowanie, aby zawsze uwzględniać lub ignorować opcjonalne zmiany, aktualizując dataconnect.yamlkonfigurację, zgodnie z opisem w artykule Migrowanie schematu w trybie ścisłym lub zgodności.

W środowiskach interaktywnych interfejs wiersza poleceń wyświetla każde polecenie SQL migracji (i informację o tym, czy jest ono destrukcyjne) oraz prosi o wprowadzenie zmian, które chcesz zastosować. Przekazanie flagi --force jest równoznaczne z zaakceptowaniem wszystkich promptów.

W środowiskach nieinteraktywnych:

  • Bez --force wprowadzane są tylko zmiany nieodwracalne. Jeśli występują zmiany destrukcyjne, interfejs wiersza poleceń przerywa działanie bez wprowadzania zmian.
  • Po kliknięciu --force wszystkie zmiany zostaną wprowadzone. Jeśli obejmują one zmiany destrukcyjne, są one drukowane i wyświetla się pytanie, czy chcesz kontynuować, chyba że podano flagę --force.
Command Opis

firebase dataconnect:sql:migrate

Flaga Opis

serviceId

Przenieś bazę danych dla określonej usługi. Identyfikator serviceId jest wywnioskowany, jeśli projekt ma tylko jedną usługę.

–-force

Automatycznie akceptuj prompty.

Podobnie jak w przypadku innych oznaczeń --only możesz podać kilka usług oddzielonych przecinkami.

Migracja schematu w trybie rygorystycznym lub zgodnym

Migracje schematu Data Connect mają 2 tryby weryfikacji schematu: ścisły i zgodny. Weryfikacja w trybie ścisłym wymaga, aby schemat bazy danych dokładnie odpowiadał schematowi aplikacji przed wdrożeniem schematu aplikacji. Weryfikacja trybu zgodności wymaga, aby schemat bazy danych był zgodny ze schematem aplikacji, co oznacza, że elementy w bazie danych, które nie są używane przez schemat aplikacji, pozostają niezmienione.

Te tryby weryfikacji schematu i sprawdzone metody migracji schematu są opisane w przewodniku po zarządzaniu schematami i łącznikami.

Tryb weryfikacji jest zdefiniowany za pomocą klucza schemaValidation w pliku dataconnect.yaml. Jeśli parametr schemaValidation nie jest określony, interfejs CLI stosuje zmiany kompatybilne i przed wprowadzeniem zmian ścisłych wyświetla odpowiedni komunikat. Zobacz informacje o konfiguracji.

Zarządzanie zmianami w przypadku oprogramowania sprzęgającego

Gdy uruchomisz polecenie firebase deploy, interfejs CLI zainicjuje aktualizację odpowiednich oprogramowań sprzęgających. Interfejs CLI analizuje zmiany w każdym łączniku i wyświetla zestaw komunikatów oceniających zmiany w łącznikach, które mogą powodować nieoczekiwane działanie (komunikaty na poziomie ostrzeżenia) lub błędy (komunikaty na poziomie błędu) w poprzednich wersjach kodu klienta.

Ocena wpływu Scenariusz
Poziom ostrzegawczy (zgodny z przewodami, może zmienić działanie)
  • Usuwanie z zapytania pola dopuszczającego wartość null bez adnotacji @retired.
Poziom powodujący przerwy w działaniu (niezgodny z okablowaniem, może powodować przerwy w działaniu klientów)
  • Zmiana zmiennej dopuszczającej wartość null na zmienną niedopuszczającą wartości null bez wartości domyślnej.
  • Zmiana typu danych pola na typ zgodny z JSON (np. Int na Float).
  • Zmiana kolumny, która nie dopuszcza wartości null, na kolumnę, która dopuszcza wartości null.
  • Usuwanie zmiennej dopuszczającej wartość null bez adnotacji @retired.
  • Usuwanie zmiennej o wartości innej niż null i wartości domyślnej bez adnotacji @retired.
Zmiana powodująca niezgodność (niezgodność z okablowaniem, spowoduje problemy u klientów)
  • Usuwanie operacji bez adnotacji @retired.
  • Usuwanie z zapytania pola, które nie ma wartości null, bez adnotacji @retired.
  • Dodanie zmiennej o wartości innej niż null bez wartości domyślnej.
  • Zmiana typu danych w polu na niezgodny (np. z String na Int).
  • Usuwanie zmiennej o wartości innej niż null bez wartości domyślnej i bez adnotacji @retired.

W środowiskach interaktywnych interfejs CLI wyświetla ocenę każdego złącza i prosi o wprowadzenie zmian, które chcesz zastosować. Przekazanie flagi --force jest równoznaczne z zaakceptowaniem wszystkich testów.

W środowiskach nieinteraktywnych:

  • Jeśli wystąpią tylko oceny na poziomie ostrzeżenia (możliwe zmiany w zachowaniu), wszystkie łączniki zostaną wdrożone, a ostrzeżenia zostaną zarejestrowane w terminalu.
  • Jeśli wystąpią jakiekolwiek oceny na poziomie przerwania, żadne łączniki nie zostaną wdrożone, a ostrzeżenia zostaną zarejestrowane w terminalu. Możesz zastąpić to ustawienie za pomocą flagi --force.

Sprawdzanie kodu autoryzacji

Data Connect pomaga w audycie strategii autoryzacji przez analizowanie kodu łącznika podczas wdrażania na serwerze za pomocą firebase deployFirebase interfejsu CLI. Możesz użyć tego audytu, aby sprawdzić bazę kodu.

Po wdrożeniu łączników interfejs CLI wyświetli oceny istniejącego, zmodyfikowanego i nowego kodu operacji w łączniku.

W przypadku zmodyfikowanych i nowych operacji interfejs wiersza poleceń wyświetla ostrzeżenia i prosi o potwierdzenie, gdy w nowych operacjach używasz określonych poziomów dostępu lub gdy modyfikujesz istniejące operacje, aby używać tych poziomów dostępu.

Ostrzeżenia i prośby o potwierdzenie zawsze pojawiają się w przypadku:

  • PUBLIC

Ostrzeżenia i prośby pojawiają się na tych poziomach dostępu, gdy nie rozszerzysz ich za pomocą filtrów z użyciem auth.uid:

  • USER
  • USER_ANON
  • USER_EMAIL_VERIFIED

Więcej informacji o autoryzacji znajdziesz w przewodniku po autoryzacji i atestach.

Polecenia pakietu SDK

Generowanie pakietów SDK

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

To polecenie generuje pakiety SDK z określonymi typami zadeklarowane w pliku connector.yaml.

Zapoznaj się też z przewodnikami dotyczącymi pracy z pakietami SDK na potrzeby internetu, pakietami SDK na Androidapakietami SDK na iOS.

Command Opis

firebase dataconnect:sdk:generate

Flaga Opis

–-watch

Utrzymuje proces w ruchu i generuje nowe pakiety SDK za każdym razem, gdy zapiszesz zmiany w plikach schematu i łącznika GQL.

Jeśli generowanie się nie powiedzie, błędy zostaną wydrukowane w stdout, wygenerowany kod nie zostanie zmieniony, a polecenie będzie nadal działać.

--only connectorId:platform

Generuj pakiety SDK tylko dla jednej platformy i jednego łącznika.

Za pomocą flagi –only możesz przekazywać wartości rozdzielone przecinkami.

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

Polecenia zarządzania Cloud SQL

Przyznawanie ról SQL w Cloud SQL

Data Connect działa na Twojej instancji PostgreSQL hostowanej w Cloud SQL. Polecenia ról SQL pomagają zarządzać uprawnieniami do tabel bazy danych.

dataconnect:sql:setup

firebase dataconnect:sql:setup

To polecenie konfiguruje początkowe, globalne uprawnienia do tabel w bazie danych.

Domyślny przepływ pracy związany z udostępnianiem baz danych i zarządzaniem nimi zakłada, że projekt korzysta z nowej bazy danych (greenfield). Gdy wywołasz firebase deploy,Data Connect wyświetli zmiany schematu bazy danych, które mają zostać wprowadzone, i przeprowadzi migracje po Twojej akceptacji. Jeśli wolisz ten sposób, dataconnect:sql:setup poprosi Cię o przyznanie uprawnień, w tym superuser własności schematu.

W przypadku istniejących baz danych (brownfield) możesz mieć własny przepływ pracy do migracji schematów i chcieć zachować własność schematu. Jeśli wolisz ten sposób, odrzuć w odpowiedzi na pytanie, czy Data Connect ma obsługiwać migracje SQL.dataconnect:sql:setup Jeśli odrzucisz tę prośbę, usługa Data Connect uzyska dostęp do tabel bazy danych tylko w zakresie readwrite, ale własność schematu i migracje pozostaną Twoją odpowiedzialnością.

Więcej informacji i przykłady zastosowań znajdziesz w artykule Zarządzanie usługami i bazami danych.

dataconnect:sql:grant

firebase dataconnect:sql:grant

W niektórych przypadkach możesz chcieć uzyskać bezpośredni dostęp do bazy danych, aby wysyłać zapytania lub aktualizować dane generowane przez aplikacje Data Connect. Aby to zrobić, musisz przyznać odpowiedniemu użytkownikowi lub kontu usługi jedną z ról zdefiniowanych w tej sekcji.

Szczegółowe informacje o przyznanych rolach znajdziesz w artykule Role użytkowników PostgreSQL.

Rola Rola SQL Uprawnienia Wykorzystanie Możliwość przyznania
czytelnik firebasereader_<db_name>_<schema_name> Dostęp tylko do odczytu bazy danych.

 Może wykonywać operacje SELECT na wszystkich tabelach w określonym schemacie.
Idealne rozwiązanie dla użytkowników lub usług, które wymagają pobierania danych, ale nie ich modyfikowania. Tak
zapisujący firebasewriter_<db_name>_<schema_name> Uprawnienia do odczytu i zapisu w bazie danych.

Może wykonywać operacje SELECT, INSERT, UPDATE, DELETETRUNCATE na wszystkich tabelach w schemacie.
Odpowiednie 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ą roles/cloudsql.client w IAM przyznaje uprawnienia do przeprowadzania migracji w bazie danych.

 Na przykład podczas dzwonienia pod numer firebase dataconnect:sql:migrate.
Tak
administrator | superużytkownik | root cloudsqlsuperuser Wbudowana rola superużytkownika z pełnymi uprawnieniami w bazie danych.

 Oprócz uprawnień właściciela może tworzyć schematy, usuwać schematy, instalować rozszerzenia i wykonywać inne zadania administracyjne.

 Dostępne w wierszu poleceń po zalogowaniu się jako „firebasesuperuser”.
Wymagane do instalowania rozszerzeń, tworzenia początkowego schematu i przyznawania innym użytkownikom dowolnych ról SQL, które można przyznać.

Jeśli użytkownik niebędący administratorem potrzebuje uprawnień superużytkownika, migracja zakończy się niepowodzeniem i wyświetli się prośba o skontaktowanie się z administratorem bazy danych (czyli użytkownikiem z uprawnieniami roles/cloudsql.admin) w celu uruchomienia uprzywilejowanych poleceń SQL.
Przyznawane użytkownikom z roles/cloudsql.admin i nie można ich przyznawać bezpośrednio z interfejsu Firebase CLI.
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 przyznać rolę.

Opcje globalne

Te opcje globalne mają zastosowanie do wszystkich poleceń:

  • --json przełącza dane wyjściowe interfejsu CLI na format JSON, aby można je było analizować w innych narzędziach.
  • --noninteractive--interactive w razie potrzeby zastępują automatyczne wykrywanie środowisk innych niż TTY.