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ć:
- Linux, macOS lub Windows.
- Visual Studio Code
Łączenie z projektem Firebase
- Jeśli nie masz jeszcze utworzonego projektu Firebase,
- W konsoli Firebase kliknij Dodaj projekt i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
Przenieś projekt na abonament Blaze. Dzięki temu możesz utworzyć instancję Cloud SQL for PostgreSQL.
Otwórz sekcję Data Connect w konsoli Firebase i postępuj zgodnie z procesem konfiguracji usługi.
Wybierz lokalizację bazy danych Cloud SQL for PostgreSQL.
Zapisz sobie nazwy i identyfikatory projektu, usługi i bazy danych, aby później je potwierdzić.
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ć:
- Utwórz nowy katalog dla projektu lokalnego.
- Otwórz VS Code w nowym katalogu.
Pobierz rozszerzenie z Firebase Storage w pakiecie VSIX.
W VS Code w menu Widok wybierz Rozszerzenia.
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:
- Zaloguj się na swoje konto.
- Kliknij przycisk Uruchom init Firebase.
- Sprawdź, czy na karcie Terminal (Terminal) w dolnym panelu VS Code (Kod VS) widzisz jakieś komunikaty.
- Wybierz Data Connect jako funkcję do użycia w tym katalogu.
- 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")
.
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.
- Do wdrożenia możesz użyć rozszerzenia Firebase do VS Code.
- W interfejsie rozszerzenia w panelu Firebase Data Connect kliknij Wdróż.
- 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
- Sprawdź zmiany schematu za pomocą:
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 dane i Uruchom (produkcja), aby dodać dane do bazy danych na zapleczu.
Aby dodać rekordy do tabel User
i Email
:
- W
schema.gql
nad deklaracją typuUser
kliknij przycisk Dodaj dane.
- W wygenerowanym pliku
User_insert.gql
zakoduj na stałe dane dotyczące 3 pola. - Kliknij przycisk Uruchom (wersja produkcyjna).
- Powtórz poprzednie kroki, aby dodać rekord do tabeli
Email
, podającuid
użytkownika w polufromUid
zgodnie z zapytaniem w wygenerowanym MutacjaEmail_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.
- macOS: Pobierz i zainstaluj aplikację Postgres.app.
- Windows: użyj instalatora EDB ze strony pobierania PostgreSQL.
- Docker: pobierz i uruchom obraz
pgvector/pgvector:pg15
, który obsługuje zarówno PostgreSQL 15.x, jak i obsługę wektorów. - Linux: zalecamy korzystanie z Dockera z poprzednim obrazem, ale możesz też wykonaj instrukcje alternatywne dotyczące popularnych dystrybucji.
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:
- W VS Code w panelu po lewej stronie kliknij ikonę Firebase, aby otworzyć interfejs Firebase VS Code.
- Kliknij przycisk Połącz z lokalną bazą danych PostgreSQL.