W tym krótkim wprowadzeniu utworzysz i wdrożysz małą przykładową bazę danych oraz uzyskasz do niej dostęp z aplikacji na iOS.
Wymagania wstępne
Aby ukończyć ten samouczek, potrzebujesz:
- Środowisko z zainstalowanymi tymi narzędziami:
- Najnowsza wersja Xcode.
- wiersz poleceń Firebase; Jeśli masz zainstalowany NPM, uruchom:
W przeciwnym razie zapoznaj się z dokumentacją, aby uzyskać instrukcje instalacji.npm install -g firebase-tools@latest
- konto Google,
Samouczek
| Samouczek | |
|---|---|
1. Tworzenie nowego projektu XcodeW Xcode utwórz nowy projekt za pomocą szablonu App (Aplikacja). |
Nazwij projekt Quickstart, a identyfikator pakietu ustaw na com.example.Quickstart.
Utwórz projekt w pustym folderze, np. |
2. Inicjowanie projektu w FirebasePrzejdź do katalogu projektu Xcode i zainicjuj w nim projekt Firebase. |
cd ~/qs-iosfirebase login --reauthfirebase init dataconnectPo wyświetleniu pytania wybierz te opcje:
Zaakceptuj domyślne wartości dla wszystkich innych pytań. Następnie zarejestruj aplikację na iOS w projekcie w Firebase. firebase apps:create --bundle-id com.example.Quickstart ios ios-quickstartGdy pojawi się prośba o podanie identyfikatora sklepu z aplikacjami, naciśnij Enter, aby pominąć ten krok. firebase apps:sdkconfig ios -o Quickstart/GoogleService-Info.plistW Xcode wybierz File > Add Files to „Quickstart” (Plik > Dodaj pliki do „Quickstart”) i wybierz plik |
3. Przejrzyj przykładowe definicje GraphQLW SQL Connect wszystkie schematy i operacje bazy danych definiujesz za pomocą GraphQL. Podczas inicjowania projektu interfejs wiersza poleceń Firebase utworzył kilka przykładowych definicji, które pomogą Ci zacząć. |
dataconnect/schema/schema.gql (fragment)
type Movie @table { title: String! imageUrl: String! genre: String } type MovieMetadata @table { movie: Movie! @unique rating: Float releaseYear: Int description: String } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
4. Wdrażanie schematów i operacjiZa każdym razem, gdy wprowadzasz zmiany w schematach bazy danych, zapytaniach lub mutacjach, musisz je wdrożyć, aby zmiany zostały zastosowane w bazie danych. |
|
5. Wypełnianie bazy danych przykładowymi danymiTe dane początkowe pozwolą Ci sprawdzić, jak działa przykładowa aplikacja. Pamiętaj, że na tym etapie wykonujesz dowolne zapytanie GraphQL, co jest dozwolone w przypadku zadań administracyjnych. |
|
6. Generowanie pakietu SDK klienta na iOSTo polecenie używa definicji GraphQL do wygenerowania pakietu SDK klienta iOS specjalnie dla Twojej bazy danych. Używasz tej biblioteki w aplikacji klienckiej do wykonywania wszystkich operacji na bazie danych. Możesz generować biblioteki dla wielu platform, w tym Kotlin na Androida, JavaScript na potrzeby internetu i Flutter, dodając definicje do |
public class ListMoviesQuery { // ... @MainActor public func execute( fetchPolicy: QueryFetchPolicy = .preferCache, ) async throws -> OperationResult<ListMoviesQuery.Data> { var variables = ListMoviesQuery.Variables() let ref = dataConnect.query( name: "ListMovies", variables: variables, resultsDataType: ListMoviesQuery.Data.self, publisher: .observableMacro) let refCast = ref as! QueryRefObservation<ListMoviesQuery.Data, ListMoviesQuery.Variables> return try await refCast.execute(fetchPolicy: fetchPolicy) } } |
7. Dodawanie zależności Firebase do projektu XcodeDodaj wygenerowaną bibliotekę do projektu za pomocą menedżera pakietów Swift. Gdy dodasz wygenerowaną bibliotekę, będzie ona przechodnio zawierać podstawowe biblioteki Firebase i bibliotekę Firebase SQL Connect. |
Na pasku nawigacyjnym Xcode wybierz File > Add Package Dependencies > Add Local (Plik > Dodaj zależności pakietu > Dodaj lokalnie) i wybierz folder zawierający wygenerowaną bibliotekę |
8. Tworzenie przykładowego klienta iOSZastąp zawartość pliku Zwróć uwagę, że aplikacja uzyskuje dostęp do bazy danych za pomocą funkcji z wygenerowanego pakietu SDK. |
import SwiftUI import FirebaseCore import FirebaseDataConnect import DataConnectGenerated @main struct QuickstartApp: App { init() { FirebaseApp.configure() } var body: some Scene { WindowGroup { ListMovieView() } } } struct ListMovieView: View { @State private var moviesData: ListMoviesQuery.Data? var body: some View { VStack { ForEach(moviesData?.movies ?? []) { movie in Text(movie.title) } } .task { let result = try? await DataConnect.exampleConnector .listMoviesQuery.execute() self.moviesData = result?.data } } } |
9. Wypróbuj aplikacjęUruchom przykładową aplikację w Xcode, aby zobaczyć, jak działa. |
|
Dalsze kroki
Wypróbuj rozszerzenie SQL Connect VS Code
Podczas tworzenia aplikacji za pomocą SQL Connect zdecydowanie zalecamy korzystanie z rozszerzenia SQL Connect VS Code. Nawet jeśli nie używasz Visual Studio Code jako głównego środowiska programistycznego, to rozszerzenie udostępnia kilka funkcji, które ułatwiają tworzenie schematów i operacji:
- Serwer języka GraphQL, który zapewnia sprawdzanie składni i sugestie autouzupełniania specyficzne dla SQL Connect.
- Przyciski CodeLens w linii kodu, które umożliwiają odczytywanie i zapisywanie danych z plików definicji schematu oraz wykonywanie zapytań i mutacji z definicji operacji.
- Automatycznie synchronizuj wygenerowane pakiety SDK z definicjami GraphQL.
- Uproszczona konfiguracja lokalnego emulatora.
- Uproszczone wdrażanie w środowisku produkcyjnym.
Korzystanie z emulatora SQL Connect na potrzeby lokalnego programowania
W tym samouczku pokazaliśmy, jak wdrażać SQL Connectschematy i operacje bezpośrednio w środowisku produkcyjnym, ale prawdopodobnie nie będziesz chcieć wprowadzać zmian w bazie danych do użytku produkcyjnego podczas aktywnego tworzenia aplikacji. Zamiast tego skonfiguruj SQL Connectemulator i pracuj nad nim, a nie nad środowiskiem produkcyjnym. Emulator konfiguruje lokalną instancję PGlite, która działa podobnie do aktywnej instancji PostgreSQL na Cloud SQL.
Dowiedz się, jak pisać schematy i operacje dla aplikacji
Podczas tworzenia aplikacji za pomocą SQL Connect projektowanie schematów i operacji jest jednym z pierwszych i najważniejszych zadań programistycznych.
- Gemini w Firebase konsoli to narzędzie AI, które może generować SQL Connect schematy na podstawie opisu aplikacji w języku naturalnym. SQL Connect To narzędzie może Ci pomóc w szybkim rozpoczęciu pracy, zwłaszcza jeśli nigdy wcześniej nie pracowałeś(-aś) z relacyjnymi bazami danych.
- Możesz też pisać schematy baz danych, zapytania i mutacje bezpośrednio za pomocą GraphQL. Zacznij od wskazówek w artykule Projektowanie SQL Connect schematów, a potem przejdź do kolejnych stron, aby dowiedzieć się, jak pisać operacje.
Dowiedz się, jak otrzymywać aktualizacje w czasie rzeczywistym z SQL Connect
Możesz używać SQL Connect do pisania aplikacji klienckich, które reagują na zmieniające się dane w czasie rzeczywistym. Przeczytaj sekcję Otrzymywanie aktualizacji w czasie rzeczywistym od SQL Connect.