En esta guía de inicio rápido, crearás e implementarás una pequeña base de datos de muestra y accederás a ella desde un frontend de Flutter.
Requisitos previos
Para completar este inicio rápido, necesitarás lo siguiente:
- Un entorno con las siguientes herramientas instaladas:
- Node.js con el administrador de paquetes que elijas En este instructivo, se supone que usas
npm. - La Firebase CLI:
npm i -g firebase-tools@latest - La herramienta de línea de comandos de Flutter
- La CLI de FlutterFire
dart pub global activate flutterfire_cli
- Node.js con el administrador de paquetes que elijas En este instructivo, se supone que usas
- Una Cuenta de Google
Instructivo
| Instructivo | |
|---|---|
1. Crear un proyecto de Firebase nuevoComienza por crear un proyecto de Firebase nuevo en la consola de Firebase. Luego, actualiza el proyecto al plan Blaze. |
|
2. Inicializa el proyectoCrea un directorio nuevo y, luego, inicializa un proyecto de Firebase en él. Cuando se te solicite, elige las siguientes opciones:
|
|
3. Revisa las definiciones de GraphQL de ejemploEn Data Connect, defines todos los esquemas y las operaciones de tu base de datos con GraphQL. Cuando inicializaste tu proyecto, la CLI de Firebase creó algunas definiciones de ejemplo para que comiences. |
dataconnect/schema/schema.gql (fragmento)
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. Implementa tus esquemas y operacionesCada vez que realices cambios en los esquemas, las consultas o las mutaciones de tu base de datos, debes implementarlos para que los cambios se apliquen en la base de datos. |
|
5. Propaga la base de datos con datos de muestraEstos datos iniciales te permitirán tener algo para ver cuando pruebes la app de ejemplo. Ten en cuenta que, en este paso, ejecutarás GraphQL arbitrario, lo que se permite para las tareas administrativas. |
|
6. Genera un SDK cliente de DartEste comando usa tus definiciones de GraphQL para generar una biblioteca de Dart específicamente para tu base de datos. Usas esta biblioteca en tu app cliente para realizar todas las operaciones de la base de datos. Puedes generar bibliotecas para varias plataformas, como Kotlin para Android, Swift para iOS y JavaScript para la Web, agregando definiciones a |
class ExampleConnector { ListMoviesVariablesBuilder listMovies() { return ListMoviesVariablesBuilder(dataConnect); } // ... } |
7. Configura una app de FlutterEjecuta estos comandos para configurar la app de Flutter de modo que use tu proyecto de Firebase. Cuando el comando |
|
8. Escribe un cliente de Flutter de ejemploReemplaza el contenido de Observa que la app completa el acceso a la base de datos necesario con una función del SDK generado. |
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:flutter/material.dart'; import 'package:flutter_app/dataconnect_generated/generated.dart'; import 'package:flutter_app/firebase_options.dart'; class MyApp extends StatelessWidget { late final Future<QueryResult<ListMoviesData, void>> _movieListFuture; MyApp({super.key}) { _movieListFuture = ExampleConnector.instance .listMovies() .execute(); } @override Widget build(BuildContext context) { return MaterialApp( home: FutureBuilder( future: _movieListFuture, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return ListView.builder( scrollDirection: Axis.vertical, itemBuilder: (context, index) => Card( child: Text( snapshot.data?.data.movies[index].title ?? "", ), ), itemCount: snapshot.data?.data.movies.length ?? 0, ); } return const CircularProgressIndicator(); }, ), ); } } Future<void> main() async { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(MyApp()); } |
9. Probar la aplicaciónInicia el servidor de desarrollo para ver la app de ejemplo en acción. |
|
Próximos pasos
Prueba la extensión de Visual Studio Code
Cuando desarrolles con Data Connect, te recomendamos que uses la extensión de Visual Studio Code. Incluso si no usas Visual Studio Code como tu entorno de desarrollo principal, la extensión proporciona varias funciones que facilitan el desarrollo de esquemas y operaciones:
- Un servidor de lenguaje GraphQL que proporciona sugerencias de autocompletar y verificación de sintaxis específicas para Data Connect
- Botones de CodeLens en línea con tu código que te permiten leer y escribir datos desde tus archivos de definición de esquema, y ejecutar consultas y mutaciones desde tus definiciones de operación
- Mantén automáticamente sincronizados los SDKs generados con tus definiciones de GraphQL.
- Configuración simplificada del emulador local
- Implementación simplificada en producción
Usa el emulador Data Connect para el desarrollo local
Si bien en este instructivo se mostró cómo implementar esquemas y operaciones de Data Connect directamente en producción, es probable que no desees realizar cambios en tu base de datos de producción mientras desarrollas tu app de forma activa. En cambio, configura el emulador de Data Connect y realiza tu trabajo de desarrollo en él en lugar de en producción. El emulador configura una instancia local de PGlite que se comporta de manera similar a una instancia activa de Postgres en Cloud SQL.
Aprende a escribir esquemas y operaciones para tu app
Cuando desarrolles apps con Data Connect, el diseño de tus esquemas y operaciones será una de las primeras y más importantes tareas de desarrollo que completarás.
- Gemini en Firebase console es una herramienta de IA que puede generar esquemas de Data Connect a partir de una descripción en lenguaje natural de tu app. Esta herramienta puede ayudarte a comenzar muy rápido, en especial si nunca trabajaste con bases de datos relacionales.
- También puedes escribir esquemas de bases de datos, consultas y mutaciones directamente con GraphQL. Comienza con la página Diseña esquemas de Data Connect y continúa con las páginas de seguimiento para aprender a escribir operaciones.