В этом кратком руководстве вы создадите и развернете небольшой пример базы данных и получите к ней доступ из интерфейса Flutter.
Предпосылки
Для выполнения этого краткого руководства вам понадобится следующее:
- Среда со следующими установленными инструментами:
- Node.js с менеджером пакетов на ваш выбор. В этом руководстве предполагается использование
npm. - Firebase CLI :
npm i -g firebase-tools@latest - Инструмент командной строки Flutter .
- Интерфейс командной строки FlutterFire
dart pub global activate flutterfire_cli
- Node.js с менеджером пакетов на ваш выбор. В этом руководстве предполагается использование
- Аккаунт Google.
Учебное пособие
| Учебное пособие | |
|---|---|
1. Создайте новый проект FirebaseНачните с создания нового проекта Firebase в консоли Firebase . Затем обновите проект до тарифного плана Blaze. | |
2. Инициализируйте свой проектСоздайте новый каталог и инициализируйте в нём проект Firebase. При появлении запроса выберите следующие варианты:
|
|
3. Ознакомьтесь с примерами определений GraphQL.В Data Connect все схемы и операции базы данных определяются с помощью GraphQL. При инициализации проекта Firebase CLI создал несколько примеров определений, которые помогут вам начать работу. | dataconnect/schema/schema.gql (отрывок)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. Разверните свои схемы и операцииВсякий раз, когда вы вносите изменения в схемы, запросы или мутации базы данных, вы должны развернуть их, чтобы ваши изменения вступили в силу в базе данных. | |
5. Заполните базу данных образцами данных.Эти начальные данные дадут вам основу для тестирования примера приложения. Обратите внимание, что на этом этапе вы запускаете произвольный код GraphQL, что разрешено для административных задач. | |
6. Создайте клиентский SDK Dart.Эта команда использует ваши определения GraphQL для создания библиотеки Dart специально для вашей базы данных. Эта библиотека используется в клиентском приложении для выполнения всех операций с базой данных. Вы можете создавать библиотеки для нескольких платформ, включая Kotlin для Android, Swift для iOS и JavaScript для веба, добавляя определения в | class ExampleConnector { ListMoviesVariablesBuilder listMovies() { return ListMoviesVariablesBuilder(dataConnect); } // ... } |
7. Настройте приложение FlutterВыполните эти команды, чтобы настроить приложение Flutter для использования вашего проекта Firebase. При появлении запроса от команды |
|
8. Напишите пример клиента Flutter Замените содержимое Обратите внимание, что приложение выполняет необходимый доступ к базе данных, используя функцию из сгенерированного SDK. | 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. Попробуйте приложениеЗапустите сервер разработки, чтобы увидеть пример приложения в действии. | |
Следующие шаги
Попробуйте расширение Visual Studio Code
При разработке с помощью Data Connect мы настоятельно рекомендуем использовать расширение Visual Studio Code . Даже если вы не используете Visual Studio Code в качестве основной среды разработки, это расширение предоставляет ряд функций, которые делают разработку схем и операций более удобной:
- Сервер языка GraphQL, обеспечивающий проверку синтаксиса и предложения автодополнения, специфичные для Data Connect
- Кнопки CodeLens в соответствии с вашим кодом, которые позволяют вам считывать и записывать данные из файлов определения схемы, а также выполнять запросы и мутации из определений ваших операций.
- Автоматически синхронизируйте сгенерированные вами SDK с определениями GraphQL.
- Упрощенная настройка локального эмулятора.
- Упрощенное развертывание в производстве.
Используйте эмулятор Data Connect для локальной разработки
Хотя в этом руководстве показано, как развернуть схемы и операции Data Connect непосредственно в рабочей среде, вам, вероятно, не захочется вносить изменения в рабочую базу данных во время активной разработки приложения. Вместо этого настройте эмулятор Data Connect и выполняйте разработку на нём, а не в рабочей среде. Эмулятор создаёт локальный экземпляр PGlite, который ведёт себя аналогично работающему экземпляру Postgres в CloudSQL.
Узнайте, как писать схемы и операции для вашего приложения.
При разработке приложений с использованием Data Connect проектирование схем и операций является одной из первых и наиболее важных задач разработки, которые вам предстоит выполнить.
- Gemini в консоли Firebase — это инструмент искусственного интеллекта, который может генерировать схемы Data Connect на основе описания вашего приложения на естественном языке. Этот инструмент поможет вам быстро начать работу, особенно если вы никогда раньше не работали с реляционными базами данных.
- Кроме того, вы можете писать схемы баз данных, запросы и мутации непосредственно с помощью GraphQL. Начните со страницы «Проектирование схем Data Connect и перейдите на следующие страницы, чтобы узнать, как писать операции.