Zacznij korzystać z Firebase Data Connect lokalnie

Z tego krótkiego wprowadzenia dowiesz się, jak tworzyć Firebase Data Connect lokalnie w aplikacji bez konfigurowania produkcyjnej instancji SQL. W ramach ćwiczenia:

  • Dodaj Firebase Data Connect do projektu Firebase.
  • Skonfiguruj środowisko programistyczne, w tym rozszerzenie Visual Studio Code, aby pracować z lokalną instancją.
  • Następnie pokażemy Ci, jak:
    • Tworzenie schematu aplikacji filmowej
    • zdefiniuj zapytania i mutacje, które będą używane w aplikacji;
    • Testowanie zapytań i mutacji za pomocą przykładowych danych w lokalnym emulatorze
    • Generowanie pakietów SDK o ściśle określonym typie i ich używanie w aplikacji
    • Wdróż ostateczny schemat, zapytania i dane w chmurze (opcjonalnie, w ramach przeniesienia na abonament Blaze).

Wybierz lokalny proces tworzenia

Data Connect oferuje 2 sposoby instalowania narzędzi programistycznych i pracy lokalnie.

Wymagania wstępne

Aby skorzystać z tego samouczka, musisz mieć:

  • Masz projekt Firebase. Jeśli nie masz jeszcze konta, utwórz je w konsoli Firebase.

Konfigurowanie środowiska programistycznego

  1. Utwórz nowy katalog dla lokalnego projektu.
  2. W nowym katalogu uruchom to polecenie.

      curl -sL https://firebase.tools/dataconnect | bash

    Ten skrypt próbuje skonfigurować środowisko programistyczne i uruchomić IDE w przeglądarce. To środowisko IDE udostępnia narzędzia, w tym wstępnie skompilowane rozszerzenie VS Code, które ułatwia zarządzanie schematem i definiowanie zapytań oraz mutacji do wykorzystania w aplikacji, a także generowanie silnie typowanych pakietów SDK.

alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'

Konfigurowanie katalogu projektu

Aby skonfigurować projekt lokalny, zainicjuj katalog projektu. W oknie IDE w panelu po lewej stronie kliknij ikonę Firebase, aby otworzyć interfejs Data Connect w rozszerzeniu VS Code:

  1. Kliknij przycisk Zaloguj się przez Google.
  2. Kliknij przycisk Połącz z projektem Firebase i wybierz projekt utworzony wcześniej w konsoli.
  3. Kliknij przycisk Uruchom init Firebase.
  4. Kliknij przycisk Uruchom emulatory.

Tworzenie schematu

W katalogu projektu Firebase w pliku /dataconnect/schema/schema.gql zacznij definiować schemat GraphQL dotyczący filmów.

Film

W Data Connect pola GraphQL są mapowane na kolumny. Film zawiera id, title, imageUrl i genre. Data Connect rozpoznaje prymitywne typy danych: StringUUID.

Skopiuj ten fragment kodu lub odkomentuj odpowiednie wiersze w pliku.

# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

MovieMetadata

Skopiuj ten fragment kodu lub odkomentuj odpowiednie wiersze w pliku.

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # This time, we omit adding a primary key because
  # you can rely on Data Connect to manage it.

  # @unique indicates a 1-1 relationship
  movie: Movie! @unique
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

Zwróć uwagę, że pole movie jest zmapowane na typ Movie. Data Connect rozumie, że jest to relacja między Movie i MovieMetadata, i będzie zarządzać tą relacją w Twoim imieniu.

Więcej informacji o schematach Data Connect znajdziesz w dokumentacji

Dodawanie danych do tabel

W panelu edytora IDE zobaczysz przyciski CodeLens nad typami GraphQL w sekcji /dataconnect/schema/schema.gql. Za pomocą przycisków Dodaj daneUruchom (lokalnie) możesz dodać dane do lokalnej bazy danych.

Aby dodać rekordy do tabel MovieMovieMetadata:

  1. schema.gql nad deklaracją typu Movie kliknij przycisk Dodaj dane.
    Przycisk CodeLens Dodaj dane w Firebase Data Connect
  2. W wygenerowanym pliku Movie_insert.gql zakoduj na stałe dane dla tych 3 pol.
  3. Kliknij przycisk Uruchom (lokalnie).
    Przycisk Uruchom CodeLens w Firebase Data Connect
  4. Powtórz poprzednie czynności, aby dodać rekord do tabeli MovieMetadata, podając w polu movieId id swojego filmu zgodnie z wytycznymi w wygenerowanej mutacji MovieMetadata_insert.

Aby szybko sprawdzić, czy dane zostały dodane:

  1. W pliku schema.gql kliknij przycisk Odczytaj dane nad deklaracją typu Movie.
  2. Aby wykonać zapytanie, w wygenerowanym pliku Movie_read.gql kliknij przycisk Uruchom (lokalnie).

Więcej informacji o mutacjach w Data Connect znajdziesz w dokumentacji

Definiowanie zapytania

Teraz najciekawsza część: zdefiniujmy zapytania, których potrzebujesz w aplikacji. Jako programista jesteś przyzwyczajony do pisania zapytań SQL, a nie zapytań GraphQL, więc na początku może to być nieco dziwne.

Jednak GraphQL jest znacznie bardziej zwięzły i bezpieczny pod względem typów niż zwykły SQL. Nasz dodatek do VS Code ułatwia programowanie.

Zacznij edytować plik /dataconnect/connector/queries.gql. Jeśli chcesz uzyskać wszystkie filmy, użyj takiego zapytania.

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

# @auth() directives control who can call each operation.
# Anyone should be able to list all movies, so the auth level is set to PUBLIC
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

Wykonaj zapytanie za pomocą przycisku CodeLens.

Naprawdę interesującą funkcją jest możliwość traktowania relacji w bazie danych jak grafu. Rekord MovieMetadata zawiera pole movie, które odwołuje się do filmu, więc możesz zagnieżdżyć to pole i otrzymać informacje o filmie. Spróbuj dodać wygenerowany typ movieMetadata_on_movie do zapytania ListMovies.

query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
    movieMetadata_on_movie {
        rating
    }
  }
}

Więcej informacji o zapytaniach Data Connect znajdziesz w dokumentacji

Generowanie pakietów SDK i używanie ich w aplikacji

W panelu po lewej stronie w IDE kliknij ikonę Firebase, aby otworzyć interfejs rozszerzenia Data Connect w VS Code:

  1. Kliknij przycisk Dodaj pakiet SDK do aplikacji.
  2. W wyświetlonym oknie wybierz katalog zawierający kod aplikacji. Data Connect Kod pakietu SDK zostanie wygenerowany i tam zapisany.

  3. Wybierz platformę aplikacji, a potem zwróć uwagę, że kod SDK zostanie natychmiast wygenerowany w wybranym katalogu.

Dowiedz się, jak używać wygenerowanego pakietu SDK do wywoływania zapytań i mutacji z aplikacji klienckich (internetowej, na Androida, na iOS, na Fluttera).

Wdrażanie schematu i zapytania do wersji produkcyjnej

Po skonfigurowaniu aplikacji lokalnie możesz wdrożyć w chmurze schemat, dane i zapytania. Aby skonfigurować instancję Cloud SQL, musisz mieć projekt w abonamencie Blaze.

  1. Otwórz sekcję Data Connect w konsoli Firebase i utwórz bezpłatną wersję próbną instancji Cloud SQL.

  2. W zintegrowanym z IDE terminalu uruchom firebase init dataconnect i wybierz Region/identyfikator usługi, który został utworzony na konsoli.

  3. Gdy pojawi się komunikat "Plik dataconnect/dataconnect.yaml już istnieje, czy chcesz go zastąpić?", wybierz "Y".

  4. W oknie IDE w interfejsie rozszerzenia VS Code kliknij przycisk Wdróż w środowisku produkcyjnym.

  5. Po wdrożeniu przejdź do konsoli Firebase, aby sprawdzić, czy schemat, operacje i dane zostały przesłane do chmury. W konsoli powinieneś mieć możliwość wyświetlania schematu i wykonywania operacji. Instancja Cloud SQL for PostgreSQL zostanie zaktualizowana o ostateczny wdrożony schemat i dane.

Dalsze kroki

Sprawdź wdrożony projekt i odkryj więcej narzędzi:

  • Dodawaj dane do bazy danych, sprawdzaj i modyfikuj schematy oraz monitoruj usługę Data Connect w konsoli Firebase.

Więcej informacji znajdziesz w dokumentacji. Na przykład po ukończeniu krótkiego wprowadzenia: