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 Android.
Pré-requisitos
Para concluir este guia de início rápido, você vai precisar do seguinte:
- Um ambiente com as seguintes ferramentas instaladas:
- Uma versão recente do Android Studio.
- 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 Android StudioNo Android Studio, crie um novo projeto com o modelo Empty Activity. Nomeie o projeto Quickstart App com o nome do pacote com.example.quickstartapp. |
|
2. Adicionar o Firebase ao projeto do Android StudioAdicione as dependências do Firebase e o plug-in de serialização do Kotlin aos seus
|
QuickstartApp/build.gradle.kts
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.compose) apply false // Add this line. id("com.google.gms.google-services") version "4.4.4" apply false } plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) // Add these lines. kotlin("plugin.serialization") version libs.versions.kotlin id("com.google.gms.google-services") } // ... dependencies { // ... // Add these lines. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.11.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.11.0") implementation(platform("com.google.firebase:firebase-bom:34.14.0")) implementation("com.google.firebase:firebase-dataconnect") } |
3. Inicializar um projeto do FirebaseMude para o diretório do projeto do Android Studio e inicialize um projeto do Firebase em it. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectQuando solicitado, escolha as seguintes opções:
Aceite os valores padrão para todos os outros prompts. Em seguida, registre seu app Android no projeto do Firebase. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. 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 } } |
5. Implantar 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. |
|
6. 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 o GraphQL arbitrário, que é permitido para tarefas administrativas. |
|
7. Gerar um SDK do cliente AndroidEsse comando usa as definições do GraphQL para gerar um SDK do cliente Android 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
Swift para iOS, JavaScript para Web e Flutter, adicionando definições a
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Escrever um cliente Android de amostraSubstitua o conteúdo de
Observe que o app conclui o acesso necessário ao banco de dados usando uma função do SDK gerado. |
package com.example.quickstartapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import com.example.quickstartapp.ui.theme.QuickstartAppTheme import com.google.firebase.dataconnect.generated.ExampleConnector import com.google.firebase.dataconnect.generated.ListMoviesQuery import com.google.firebase.dataconnect.generated.execute import com.google.firebase.dataconnect.generated.instance class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { QuickstartAppTheme() { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> var movies by remember { mutableStateOf(emptyList<ListMoviesQuery.Data.MoviesItem>()) } LaunchedEffect(Unit) { // Queries need to be executed in a coroutine context try { movies = ExampleConnector.instance.listMovies.execute().data.movies } catch (e: Exception) { // TODO: Handle error, e.g., show a Toast or update a state variable to // display an error message. } } LazyColumn(modifier = Modifier.padding(innerPadding)) { items(movies) { movie -> Text(text = movie.title) } } } } } } } |
9. Instale o appNo Android Studio, execute o app de exemplo para conferir o funcionamento dele. |
|
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 Projetar SQL Connect esquemas, e continue nas páginas de acompanhamento para aprender a escrever operações.