Dans ce guide de démarrage rapide, vous allez créer et déployer une petite base de données exemple, puis y accéder à partir d'une application Android.
Prérequis
Pour suivre ce guide de démarrage rapide, vous aurez besoin des éléments suivants :
- Un environnement avec les outils suivants installés :
- Une version récente d'Android Studio
- La CLI Firebase. Si NPM est installé, exécutez la commande suivante :
Sinon, consultez la documentation pour obtenir des instructions d'installation.npm install -g firebase-tools@latest
- Un compte Google.
Tutoriel
| Tutoriel | |
|---|---|
1. Créer un projet Android StudioDans Android Studio, créez un projet avec le modèle Empty Activity (Activité vide). Nommez le projet Quickstart App avec le nom de package com.example.quickstartapp. |
|
2. Ajouter Firebase à votre projet Android StudioAjoutez les dépendances Firebase et le plug-in de sérialisation Kotlin à vos fichiers |
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. Initialiser un projet FirebaseAccédez au répertoire du projet Android Studio et initialisez un projet Firebase. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectLorsque vous y êtes invité, choisissez les options suivantes :
Acceptez les valeurs par défaut pour toutes les autres invites. Ensuite, enregistrez votre application Android dans votre projet Firebase. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Examiner les exemples de définitions GraphQLDans SQL Connect, vous définissez tous vos schémas et opérations de base de données à l'aide de GraphQL. Lorsque vous avez initialisé votre projet, la CLI Firebase a créé des exemples de définitions pour vous aider à démarrer. |
dataconnect/schema/schema.gql (extrait)
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. Déployer vos schémas et opérationsChaque fois que vous modifiez vos schémas de base de données, vos requêtes ou vos mutations, vous devez les déployer pour que vos modifications prennent effet sur la base de données. |
|
6. Insérer des exemples de données dans la base de donnéesCes données d'amorçage vous donneront un aperçu lorsque vous testerez l'application exemple. Notez que lors de cette étape, vous exécutez un code GraphQL arbitraire, ce qui est autorisé pour les tâches administratives. |
|
7. Générer un SDK client AndroidCette commande utilise vos définitions GraphQL pour générer un SDK client Android spécifiquement pour votre base de données. Vous utilisez cette bibliothèque dans votre application cliente pour effectuer toutes les opérations de base de données. Vous pouvez générer des bibliothèques pour plusieurs plates-formes, y compris Swift pour iOS, JavaScript pour le Web et Flutter, en ajoutant des définitions à |
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Écrire un exemple de client AndroidRemplacez le contenu de
Notez que l'application effectue l'accès à la base de données nécessaire à l'aide d'une fonction du SDK généré. |
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. Essayer l'appliDans Android Studio, exécutez l'application exemple pour la voir en action. |
|
Étapes suivantes
Essayer l'extension VS Code SQL Connect
Lorsque vous développez avec SQL Connect, nous vous recommandons vivement d'utiliser l'extension VS Code SQL Connect. Même si vous n'utilisez pas Visual Studio Code comme environnement de développement principal, l'extension fournit plusieurs fonctionnalités qui facilitent le développement de schémas et d'opérations :
- Un serveur de langage GraphQL, qui fournit des suggestions de vérification de la syntaxe et de saisie semi-automatique spécifiques à SQL Connect
- Boutons CodeLens alignés sur votre code qui vous permettent de lire et d'écrire des données à partir de vos fichiers de définition de schéma, et d'exécuter des requêtes et des mutations à partir de vos définitions d'opération.
- Synchronisez automatiquement vos SDK générés avec vos définitions GraphQL.
- Configuration simplifiée de l'émulateur local.
- Déploiement simplifié en production.
Utiliser l'émulateur SQL Connect pour le développement local
Bien que ce tutoriel vous ait montré comment déployer des schémas et des opérations SQL Connect directement en production, vous ne souhaiterez probablement pas apporter de modifications à votre base de données de production pendant que vous développez activement votre application. À la place, configurez l'émulateur SQL Connect et effectuez votre travail de développement sur celui-ci plutôt que sur la production. L'émulateur configure une instance PGlite locale qui se comporte de la même manière qu'une instance PostgreSQL en direct sur Cloud SQL.
Découvrez comment rédiger des schémas et des opérations pour votre application
Lorsque vous développez des applications avec SQL Connect, la conception de vos schémas et opérations est l'une des premières et des plus importantes tâches de développement que vous effectuerez.
- Gemini dans la console Firebase est un outil d'IA qui peut générer des schémas SQL Connect à partir d'une description en langage naturel de votre application. Cet outil peut vous aider à démarrer très rapidement, surtout si vous n'avez jamais travaillé avec des bases de données relationnelles.
- Vous pouvez également écrire des schémas de base de données, des requêtes et des mutations directement à l'aide de GraphQL. Commencez par les conseils de la section Concevoir des schémas SQL Connect, puis consultez les pages suivantes pour découvrir comment écrire des opérations.