Pierwsze kroki z Firebase Data Connect

Z tego krótkiego wprowadzenia dowiesz się, jak:

  • Dodaj Firebase Data Connect do projektu Firebase.
  • Konfigurowanie środowiska programistycznego obejmującego Visual Studio Rozszerzenie kodu do pracy z instancją produkcyjną.
  • Następnie pokażemy Ci, jak:
    • Utwórz schemat aplikacji do poczty e-mail i wdróż ją w środowisku produkcyjnym.
    • Zdefiniuj zapytania i mutacje dla schematu.
    • Wdróż końcowy schemat, zapytanie i dane w środowisku produkcyjnym.

Wymagania wstępne

Aby skorzystać z tego samouczka, musisz mieć:

Łączenie z projektem Firebase

  1. Jeśli nie masz jeszcze utworzonego projektu Firebase,
    1. W konsoli Firebase kliknij Dodaj projekt i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
  2. Przenieś projekt na abonament Blaze. Dzięki temu możesz utworzyć instancję Cloud SQL for PostgreSQL.

  3. Otwórz sekcję Data Connect w konsoli Firebase i postępuj zgodnie z procesem konfiguracji usługi.

  4. Wybierz lokalizację bazy danych Cloud SQL for PostgreSQL.

  5. Zapisz sobie nazwy i identyfikatory projektu, usługi i bazy danych, aby później je potwierdzić.

  6. Wykonaj pozostałe czynności konfiguracji, a potem kliknij Gotowe.

Wybieranie i konfigurowanie środowiska programistycznego

Data Connect obsługuje 2 metody tworzenia prototypów:

  • Jeśli jesteś deweloperem Kotlin Android, iOS lub web, możesz używać VS Code do programowania w celu projektowania i testowania schematów oraz operacji lokalnie podczas łączenia się z instancją Cloud SQL for PostgreSQL.
  • Jeśli jesteś deweloperem, możesz korzystać z poziomu IDX Development, aby tworzyć aplikacje w ramach tej platformy, używając wstępnie skonfigurowanego szablonu IDX z serwerem PostgreSQL, rozszerzeniem VS Code z emulatorem Data Connect oraz kodu quickstart. Więcej informacji znajdziesz na Witryna projektu IDX.

To krótkie wprowadzenie dotyczy procesu tworzenia rozszerzenia VS Code. Aby kontynuować:

  1. Utwórz nowy katalog dla projektu lokalnego.
  2. Otwórz VS Code w nowym katalogu.
  3. Pobierz rozszerzenie z Firebase Storage w pakiecie VSIX.

  4. W VS Code w menu Widok wybierz Rozszerzenia.

  5. Na pasku tytułu panelu Rozszerzenia kliknij ikonę menu more_horiz, a potem postępuj zgodnie z instrukcjami wyświetlanymi na ekranie Zainstaluj z pliku VSIX….

Opcjonalnie możesz zainstalować lokalną bazę danych PostgreSQL na potrzeby programowania lokalnego za pomocą emulatora Data Connect. Ta konfiguracja jest omówiona na końcu tym krótkim wprowadzeniu.

Konfigurowanie projektu lokalnego

Zainstaluj interfejs wiersza poleceń, postępując zgodnie z zwykłymi instrukcjami. Jeśli masz npm już zainstalowane, uruchom następujące polecenie:

npm install -g firebase-tools

Skonfiguruj katalog projektu

Aby skonfigurować projekt lokalny, zainicjuj katalog projektu.

W panelu po lewej stronie w VS Code kliknij ikonę Firebase, aby otworzyć interfejs rozszerzenia Firebase VS Code.

W interfejsie rozszerzenia Firebase:

  1. Zaloguj się na swoje konto.
  2. Kliknij przycisk Uruchom init Firebase.
  3. Sprawdź, czy na karcie Terminal (Terminal) w dolnym panelu VS Code (Kod VS) widzisz jakieś komunikaty.
  4. Wybierz Data Connect jako funkcję do użycia w tym katalogu.
  5. Gdy pojawi się prośba, podaj identyfikatory projektów, usług i baz danych Data Connect projekt utworzony wcześniej w konsoli.

Tworzenie schematu

W katalogu projektu Firebase w pliku /dataconnect/schema/schema.gql zacznij definiować schemat GraphQL, który zawiera użytkowników i adresy e-mail.

Użytkownik

W Data Connect pola GraphQL są mapowane na kolumny. Użytkownicy mają adresy uid, name i e-mail address. Data Connect rozpoznaje kilka podstawowe typy danych: String i Date.

Skopiuj ten fragment lub usuń znacznik komentarza z odpowiednich wierszy w pliku.

# File `/dataconnect/schema/schema.gql`

type User @table(key: "uid") {
   uid: String!
   name: String!
   address: String!
}

Domyślnie Firebase Data Connect doda klucz UUID id, jeśli nie zostanie podany żaden klucz. W tym przypadku jednak chcesz, aby kluczem podstawowym było pole uid. Możesz to zrobić za pomocą dyrektywy @table(key: "uid").

E-mail

Teraz, gdy masz już użytkowników, możesz modelować e-maile. Tutaj możesz dodać typowe pola (czyli kolumny) danych e-maili. Tym razem pomijamy dodawanie klucza podstawowego. , ponieważ może ona zarządzać nim w firmie Data Connect.

# File `/dataconnect/schema/schema.gql`

type Email @table {
   subject: String!
   sent: Date!
   text: String!
   from: User!
}

Zauważ, że pole from jest zmapowane na typ User. Data Connect rozumie, że jest to relacja między Email i User będą zarządzać tą relacjami za Ciebie.

Wdrażanie schematu w środowisku produkcyjnym

Jeśli używasz rozszerzenia Firebase VS Code do obsługi produkcyjna baza danych, musisz wdrożyć schemat, zanim przejdziesz dalej. Po wdrożenia schematu w produkcyjnej bazie danych powinien być dostępny schemat w konsoli.

  1. Do wdrożenia możesz użyć rozszerzenia Firebase do VS Code.
    • W interfejsie rozszerzenia w panelu Firebase Data Connect kliknij Wdróż.
  2. Może być konieczne sprawdzenie zmian w schemacie i zatwierdzenie potencjalnie szkodliwych modyfikacji. Wyświetli się prośba o:
    • Sprawdź zmiany schematu za pomocą: firebase dataconnect:sql:diff
    • Jeśli zmiany są zadowalające, zastosuj je, zaczynając od firebase dataconnect:sql:migrate

Dodawanie danych do tabel

W panelu edytora kodu VS przyciski CodeLens są widoczne nad Typy GraphQL w polu /dataconnect/schema/schema.gql. Ponieważ schemat został wdrożony w produkcji, możesz użyć przycisków Dodaj daneUruchom (produkcja), aby dodać dane do bazy danych na zapleczu.

Aby dodać rekordy do tabel User i Email:

  1. schema.gql nad deklaracją typu User kliknij przycisk Dodaj dane.
    Przycisk dodawania danych Obiektywu do kodu dla Firebase Data Connect
  2. W wygenerowanym pliku User_insert.gql zakoduj na stałe dane dotyczące 3 pola.
  3. Kliknij przycisk Uruchom (wersja produkcyjna).
    Przycisk Uruchom Code Lens w Firebase Data Connect
  4. Powtórz poprzednie kroki, aby dodać rekord do tabeli Email, podając uid użytkownika w polu fromUid zgodnie z zapytaniem w wygenerowanym Mutacja Email_insert.

Zdefiniuj zapytanie

Teraz czas na zabawę – zapytania. Programiści są przyzwyczajeni do pisania kodu SQL, niż zapytań GraphQL, więc na początku może to wyglądać nieco inaczej. Jednak GraphQL jest znacznie bardziej zwięzły i bezpieczny pod względem typów niż zwykły SQL. Podobnie jak w przypadku VS Code ułatwia tworzenie aplikacji.

Zacznij edytować plik /dataconnect/connector/queries.gql. Jeśli chcesz , aby otrzymać wszystkie e-maile, użyj takiego zapytania.

# File `/dataconnect/connector/queries.gql`

query ListEmails @auth(level: NO_ACCESS) {
  emails {
    id, subject, text, sent
    from {
      name
    }
  }
}

Wykonaj zapytanie, korzystając z pobliskiego przycisku CodeLens.

Naprawdę interesującą funkcją jest możliwość traktowania relacji w bazie danych jak grafu. Adres e-mail zawiera pole from, które odwołuje się do Użytkownik, możesz zagnieździć to pole i uzyskać o nim informacje.

Wdrażanie schematu i zapytania w środowisku produkcyjnym

Udało Ci się przejść iterację rozwojową. Możesz teraz wdrożyć schemat, dane i zapytania na serwerze za pomocą interfejsu Firebase Extension lub wiersza poleceń Firebase, tak jak w przypadku schematu (#deploy-schema).

Jeśli do wdrażania używasz rozszerzenia Firebase do VS Code, kliknij przycisk Wdróż.

Po wdrożeniu operacji powinny być one widoczne i można je wykonywać w konsoli. Twoja usługa Data Connect będzie gotowa do przetwarzania operacji od klientów. Instancja Cloud SQL for PostgreSQL zostanie zaktualizowana o ostateczny wdrożony wygenerowany schemat i dane.

(Opcjonalnie) Instalowanie PostgreSQL lokalnie

Instalowanie PostgreSQL lokalnie i integrowanie go z emulatorem umożliwia tworzenie prototypów w całkowicie w lokalnym środowisku programistycznym.

Możesz zainstalować nową instancję PostgreSQL lub użyć istniejącej.

Instalowanie PostgreSQL

Zainstaluj PostgreSQL w wersji 15.x, postępując zgodnie z instrukcjami dla swojej platformy.

Zanotuj nazwę hosta, port, nazwę użytkownika i hasło oraz powiązane parametry wyjściowe podczas i sekwencji instalacji.

Aby połączyć się z instancją PostgreSQL, emulator musi mieć:

  • Te parametry konfiguracji
  • Nazwa bazy danych z Twojego dataconnect.yaml oraz bazy danych o odpowiedniej nazwie zainicjowanej w Twojej instancji lokalnej.

Korzystanie z lokalnej instancji PostgreSQL

Możesz użyć istniejącej lokalnej instancji PostgreSQL, aktualizując ustawienia emulatora Data Connect.

firebase setup:emulators:dataconnect

Gdy pojawi się prośba, wpisz ciąg znaków połączenia PostgreSQL w tym formacie: postgresql://postgresusername:postgrespassword@localhost:5432/postgresdatabase?sslmode=disable.

Więcej informacji o ciągu połączenia znajdziesz w dokumentacji PostgreSQL.

Łączenie z lokalną instancją PostgreSQL

Po zakończeniu konfiguracji, aby połączyć się z lokalną bazą danych:

  1. W VS Code w panelu po lewej stronie kliknij ikonę Firebase, aby otworzyć interfejs Firebase VS Code.
  2. Kliknij przycisk Połącz z lokalną bazą danych PostgreSQL.

Dalsze kroki