Neste guia de início rápido, você vai criar e implantar um pequeno banco de dados de amostra e acessá-lo em um app iOS.
Pré-requisitos
Para concluir este guia de início rápido, você precisará do seguinte:
- Um ambiente com as seguintes ferramentas instaladas:
- Uma versão recente do Xcode.
- A CLI do Firebase. Se você tiver o NPM instalado, execute:
Caso contrário, consulte os documentos para instruções de instalação.npm install -g firebase-tools@latest
- Uma Conta do Google.
Tutorial
| Tutorial | |
|---|---|
1. Criar um novo projeto do XcodeNo Xcode, crie um novo projeto com o modelo App. |
Nomeie o projeto Quickstart com o identificador do pacote com.example.Quickstart.
Crie o projeto em uma pasta vazia, como |
2. Inicializar um projeto do FirebaseMude para o diretório do projeto do Xcode e inicialize um projeto do Firebase nele. |
cd ~/qs-iosfirebase login --reauthfirebase init dataconnectQuando solicitado, escolha as seguintes opções:
Aceite os valores padrão para todos os outros prompts. Em seguida, registre o app iOS no seu projeto do Firebase. firebase apps:create --bundle-id com.example.Quickstart ios ios-quickstartQuando solicitado a especificar um ID da App Store, pressione Enter para pular a etapa. firebase apps:sdkconfig ios -o Quickstart/GoogleService-Info.plistNo Xcode, selecione File > Add Files to "Quickstart" e selecione o
|
3. Analisar as definições de exemplo do GraphQLNo SQL Connect, você define todos os esquemas e operações do banco de dados usando o GraphQL. Quando você inicializou o projeto, a Firebase CLI criou algumas definições de exemplo para você começar. |
dataconnect/schema/schema.gql (trecho)
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. Implantar seus esquemas e operaçõesSempre que você fizer mudanças nos esquemas, consultas ou mutações do banco de dados, será necessário implantá-los para que as mudanças entrem em vigor no banco de dados. |
|
5. Inicializar o banco de dados com dados de amostraEsses dados iniciais vão fornecer algo para você analisar ao testar o app de exemplo. Observe que, nesta etapa, você está executando um GraphQL arbitrário, que é permitido para tarefas administrativas. |
|
6. Gerar um SDK do cliente iOSEsse comando usa as definições do GraphQL para gerar um SDK do cliente iOS especificamente para seu banco de dados. Você usa essa biblioteca no app cliente para realizar todas as operações do banco de dados. É possível gerar bibliotecas para várias plataformas, incluindo
Kotlin para Android, JavaScript para Web e Flutter, adicionando definições a
|
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. Adicionar dependências do Firebase ao seu projeto do XcodeAdicione a biblioteca gerada ao seu projeto usando o Gerenciador de pacotes do Swift. Quando você adiciona a biblioteca gerada, ela inclui transitivamente as bibliotecas principais do Firebase e a biblioteca Firebase SQL Connect. |
Na barra de navegação do Xcode, selecione
File > Add Package Dependencies > Add Local e escolha a pasta que contém
a biblioteca gerada,
|
8. Escrever um cliente iOS de exemploSubstitua o conteúdo de
Observe que o app conclui o acesso necessário ao banco de dados usando uma função do SDK gerado. |
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. Instale o appNo Xcode, execute o app de exemplo para vê-lo em ação. |
|
Próximas etapas
Testar a extensão do SQL Connect VS Code
Ao desenvolver com SQL Connect, recomendamos o uso da extensão do SQL Connect VS Code. Mesmo que você não use o Visual Studio Code como ambiente de desenvolvimento principal, a extensão oferece vários recursos que tornam o desenvolvimento de esquemas e operações mais conveniente:
- Um servidor de linguagem GraphQL, que oferece verificação de sintaxe e sugestões de preenchimento automático específicas do SQL Connect
- Botões do CodeLens em linha com o código que permitem ler e gravar dados dos arquivos de definição de esquema e executar consultas e mutações das definições de operação.
- Mantenha automaticamente os SDKs gerados sincronizados com as definições do GraphQL.
- Configuração simplificada do emulador local.
- Implantação simplificada na produção.
Usar o SQL Connect emulador para desenvolvimento local
Embora este tutorial tenha mostrado como implantar SQL Connect esquemas e operações diretamente na produção, provavelmente você não vai querer fazer mudanças no banco de dados de produção enquanto estiver desenvolvendo o app. Em vez disso, configure o SQL Connect emulador e faça o trabalho de desenvolvimento nele em vez da produção. O emulador configura uma instância local do PGlite que se comporta de maneira semelhante a uma instância ativa do PostgreSQL no Cloud SQL.
Aprenda a escrever esquemas e operações para seu app
Ao desenvolver apps com SQL Connect, o design dos esquemas e operações é uma das primeiras e mais importantes tarefas de desenvolvimento que você vai concluir.
- O Gemini no consoleFirebase é uma ferramenta de IA que pode gerar esquemasSQL Connect a partir de uma descrição em linguagem natural do seu app. Essa ferramenta pode ajudar você a começar muito rapidamente, principalmente se você nunca trabalhou com bancos de dados relacionais.
- Como alternativa, você pode escrever esquemas, consultas e mutações diretamente usando o GraphQL. Comece com as orientações em Criar SQL Connect esquemas, e continue nas páginas de acompanhamento para aprender a escrever operações.
Aprenda a receber atualizações em tempo real do SQL Connect
Você pode usar SQL Connect para escrever aplicativos cliente que reagem a mudanças de dados em tempo real. Consulte Receber atualizações em tempo real de SQL Connect.