Начало работы с Firebase Data Connect

В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении с помощью производственного экземпляра SQL.

В консоли Firebase вы сможете:

  • Добавьте Firebase Data Connect в свой проект Firebase.
  • Создайте схему для приложения в консоли Firebase с помощью Schema Assist и разверните ее.
  • Предоставьте экземпляр Cloud SQL для своего приложения.
  • С помощью Gemini Code Assist заполните свою базу данных образцами данных .

Затем в вашей локальной среде разработки вы сможете:

  • Настройте инструменты разработки, включая расширение Visual Studio Code, для работы с вашим производственным экземпляром.
  • Синхронизируйте свою локальную среду с ресурсами, созданными вами в консоли.
  • Используйте инструменты расширения, которые помогут вам реализовать запрос , который будет использоваться в вашем приложении.
  • Создавайте строго типизированные SDK и используйте их в своем приложении.
  • Разверните окончательную схему, запрос и данные в облаке.

Поток консоли: спроектируйте свою схему и разверните ее в своей базе данных.

  1. Если вы еще этого не сделали, создайте проект Firebase.
    1. В консоли Firebase нажмите «Добавить проект» и следуйте инструкциям на экране.
  2. Перейдите в раздел Data Connect консоли Firebase .
  3. Нажмите кнопку «Начать работу с Gemini» .
  4. На появившейся панели рабочего процесса генератора схем опишите приложение, чтобы Gemini могла помочь вам создать схему GraphQL.
  5. Просмотрите схему GraphQL, затем нажмите «Обновить и развернуть» .
  6. Обновите свой проект до плана Blaze. Это позволит вам создать экземпляр Cloud SQL для PostgreSQL.

  7. Выберите Создать новый экземпляр Cloud SQL . В появившемся диалоговом окне выберите расположение и имя для вашей базы данных Cloud SQL for PostgreSQL.

    Схема вашего приложения развернута вместе с базой данных PostgreSQL, соответствующей этой схеме.

Порядок работы консоли: используйте Gemini в Firebase , чтобы создать мутацию и заполнить базу данных.

Выполнив предыдущий шаг, вы создали схему Data Connect , состоящую из соответствующих типов сущностей, и развернули ее в рабочей среде, то есть также была создана и развернута база данных PostgreSQL с соответствующими таблицами .

Чтобы заполнить вашу базу данных, вы можете использовать Gemini в Firebase , который поможет вам использовать входные данные на естественном языке для определения мутации GraphQL для обновления одной из ваших таблиц и запроса для подтверждения ваших обновлений.

  1. Откройте вкладку Данные .

  2. Щелкните значок «Помоги мне написать GraphQL pen_spark» и в появившемся поле введите введенные данные.

    Например:

    Add data for three sample products to my app.
    
  3. Нажмите «Создать» . Мутация возвращается.

  4. Просмотрите результат. При необходимости нажмите «Изменить» , чтобы уточнить запрос, и нажмите «Регенерировать» .

  5. Затем нажмите «Вставить» , чтобы вставить мутацию в редактор данных.

  6. Нажмите «Выполнить» .

Когда вы запускаете мутацию, данные записываются в соответствующую таблицу вашей базы данных PostgreSQL. Вы можете создать запрос в консоли для просмотра сохраненных данных:

  1. Повторите предыдущие шаги, используя Помогите мне написать GraphQL pen_spark , чтобы создать запрос.

  2. В появившемся поле введите введенные данные.

    Например:

    Query data for all sample products in my app.
    
  3. Нажмите «Создать» , затем «Выполнить» .

Локальный поток: выберите инструменты разработки

Теперь, когда у вас есть данные в развернутой базе данных, вы можете продолжить разработку схемы и соединителей в локальной среде разработки.

Во-первых, вам нужно настроить локальную среду. Data Connect предлагает два способа установки инструментов разработки.

Локальный поток: настройка среды разработки

  1. Создайте новый каталог для вашего локального проекта.
  2. Запустите следующую команду в новом созданном каталоге.

      curl -sL https://firebase.tools/dataconnect | bash

    Этот сценарий пытается настроить для вас среду разработки и запустить IDE на основе браузера. Эта IDE предоставляет инструменты, в том числе предварительно связанное расширение VS Code, которые помогут вам управлять схемой, определять запросы и мутации, которые будут использоваться в вашем приложении, а также генерировать строго типизированные SDK.

alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'

Локальный поток: настройка каталога проекта

Чтобы настроить локальный проект, инициализируйте каталог проекта. В окне IDE на левой панели щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:

  1. Нажмите кнопку «Войти через Google» .
  2. Нажмите кнопку «Подключить проект Firebase» и выберите в консоли проект, который вы создали ранее.
  3. Нажмите кнопку «Запустить инициализацию Firebase» и завершите процесс.

  4. Нажмите кнопку «Запустить эмуляторы» .

Локальный поток: найдите свою схему в локальной среде.

Шаг firebase init в предыдущем разделе, синхронизировал схему, которую вы развернули из консоли, с вашей локальной средой разработки.

Найдите свою схему: она находится в каталоге вашего проекта Firebase, в файле /dataconnect/schema/schema.gql .

Локальный поток: работа со своей схемой

Пример схемы: Фильм

В Data Connect поля GraphQL сопоставляются со столбцами. Тип Movie , скорее всего, будет иметь id , title , imageUrl и genre . Data Connect распознает примитивные типы данных String и UUID .

# File `/dataconnect/schema/schema.gql`

# By default, a UUID id key will be created by default as primary key.
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

Таблица примера схемы 1:1: MovieMetadata

С помощью фильмов вы можете моделировать метаданные фильма.

Например, в schema.gql вы можете добавить следующий фрагмент или код проверки, созданный Gemini .

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # This time, we omit adding a primary key because
  # you can rely on Data Connect to manage it.

  # @unique indicates a 1-1 relationship
  movie: Movie! @unique
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

Обратите внимание, что поле movie сопоставлено с типом Movie . Data Connect понимает, что это связь между Movie и MovieMetadata , и будет управлять этой связью за вас.

Дополнительные сведения о схемах Data Connect см. в документации.

Локальный поток: добавьте больше данных в свои таблицы

На панели редактора IDE вы можете увидеть, как кнопки CodeLens появляются над типами GraphQL в /dataconnect/schema/schema.gql . Как и в консоли, вы можете создать мутацию для добавления данных в рабочую базу данных.

Работая локально, чтобы добавить данные в таблицу:

  1. В schema.gql нажмите кнопку «Добавить данные» над объявлением одного из ваших типов (например, Movie , Product , Account , в зависимости от типа вашего приложения).
    Кнопка Code Lens Добавить данные для Firebase Data Connect
  2. В ваш рабочий каталог добавляется новый файл <type>_insert.qgl , например Movie_insert.gql или Product_insert.gql . Данные жесткого кода в полях для этого типа.
  3. Нажмите кнопку «Запустить (Производство)» .
    Кнопка Code Lens Run для Firebase Data Connect
  4. Повторите предыдущие шаги, чтобы добавить запись в другие таблицы.

Для быстрой проверки данных добавлено:

  1. Вернувшись в schema.gql , нажмите кнопку «Читать данные» над объявлением типа.
  2. В полученном файле <type>_read.gql , например Product_read.gql , нажмите кнопку «Выполнить (Производство)» , чтобы выполнить запрос.

Узнайте больше о мутациях Data Connect в документации.

Локальный поток: определите свой запрос

Теперь самое интересное, запросы. Как разработчик, вы привыкли писать запросы SQL, а не запросы GraphQL, поэтому поначалу это может показаться немного другим. Однако GraphQL гораздо более краток и типобезопасен, чем чистый SQL. А наше расширение VS Code упрощает разработку.

Чтобы реализовать запрос, вы можете адаптировать запрос, сгенерированный с помощью нашего CodeLens:

  1. В /dataconnect/schema/schema.gql над типом ( Movie , Product , Account и т. д.) нажмите кнопку Read data CodeLens.
  2. В полученном файле <type>_read.gql проверьте запрос, нажав кнопку «Выполнить (производство)» .
  3. Скопируйте работающий запрос в /dataconnect/connector/queries.gql .
  4. Чтобы этот запрос можно было развернуть, объявите для него уникальное имя.

    Например, в следующем общем примере query_name может быть ListMovies , ListProducts или ListAccounts .

# File `/dataconnect/connector/queries.gql`

# @auth() directives control who can call each operation.
query <query_name> @auth(level: PUBLIC) {
   <table_name> {
     <field_1>
     <field_2>
     <field_3>
  }
}

Выполните запрос, используя расположенную рядом кнопку CodeLens.

Дополнительные сведения о запросах Data Connect см. в документации.

Локальный поток: создание SDK

  1. Нажмите кнопку «Добавить SDK в приложение» .
  2. В появившемся диалоговом окне выберите каталог, содержащий код вашего приложения. Код Data Connect SDK будет создан и сохранен там.

  3. Выберите платформу своего приложения и обратите внимание, что код SDK сразу же создается в выбранном вами каталоге.

Локальный поток: разверните свою схему и запросите ее в рабочей среде

Вы прошли итерацию разработки. Теперь вы можете развернуть свою схему и запросы на сервере с помощью пользовательского интерфейса расширения Firebase или интерфейса командной строки Firebase , так же, как вы это делали со своей схемой.

В окне IDE в пользовательском интерфейсе расширения кода VS нажмите кнопку «Развернуть в производство» .

После развертывания перейдите в консоль Firebase , чтобы убедиться, что обновления схемы (если применимо) и операции загружены в облако. У вас должна быть возможность просматривать схему и выполнять операции на консоли. Экземпляр Cloud SQL для PostgreSQL будет обновлен с учетом окончательной развернутой сгенерированной схемы и данных.

Подробную информацию об использовании эмулятора Data Connect можно найти в документации.

Локальный поток: используйте SDK для вызова запроса из приложения.

Теперь, когда ваша обновленная схема (если применимо). и ваш запрос развернут в рабочей среде, вы можете использовать SDK, созданный Data Connect , для реализации вызова вашего запроса ListMovies .

  1. Добавьте Firebase в свое веб- приложение.
  2. В главном файле вашего приложения React:

    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
    import React from 'react';
    import ReactDOM from 'react-dom/client';
    
    // Generated queries.
    // Update as needed with the path to your generated SDK.
    import { listMovies, ListMoviesData } from '@movie-app/movies';
    
    function App() {
      const [movies, setMovies] = useState<ListMoviesData['movies']>([]);
      useEffect(() => {
        listMovies.then(res => setMovies(res.data));
      }, []);
      return (
        movies.map(movie => <h1>{movie.title}</h1>);
      );
    }
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(<App />);
    
  1. Добавьте Firebase в свое приложение для iOS .
  2. Чтобы использовать сгенерированный SDK, настройте его как зависимость в Xcode.

    В верхней панели навигации Xcode выберите «Файл» > «Добавить зависимости пакета» > «Добавить локальный» и выберите папку, содержащую сгенерированный Package.swift .

  3. В главном делегате вашего приложения:

    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
    import SwiftUI
    
    import FirebaseDataConnect
    // Generated queries.
    // Update as needed with the package name of your generated SDK.
    import <CONNECTOR-PACKAGE-NAME>
    
    let connector = DataConnect.moviesConnector
    
    struct ListMovieView: View {
    @StateObject private var queryRef = connector.listMovies.ref()
    
        var body: some View {
            VStack {
                Button {
                    Task {
                        do {
                            try await refresh()
                        } catch {
                            print("Failed to refresh: \(error)")
                        }
                    }
                } label: {
                    Text("Refresh")
                }
    
                // use the query results in a view
                ForEach(queryRef.data?.movies ?? []) { movie in
                        Text(movie.title)
                    }
                }
        }
        @MainActor
        func refresh() async throws {
            _ = try await queryRef.execute()
        }
    
        struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ListMovieView()
        }
    }
    
  1. Добавьте Firebase в свое приложение для Android .
  2. Чтобы использовать созданный SDK, настройте Data Connect как зависимость в Gradle.

    Обновите plugins и dependencies в вашем app/build.gradle.kts .

    plugins {
      // Use whichever versions of these dependencies suit your application.
      // The versions shown here were the latest as of March 14, 2025.
      // Note, however, that the version of kotlin("plugin.serialization") must,
      // in general, match the version of kotlin("android").
      id("com.android.application") version "8.9.0"
      id("com.google.gms.google-services") version "4.4.2"
      val kotlinVersion = "2.1.10"
      kotlin("android") version kotlinVersion
      kotlin("plugin.serialization") version kotlinVersion
    }
    
    dependencies {
      // Use whichever versions of these dependencies suit your application.
      // The versions shown here were the latest versions as of March 14, 2025.
      implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04")
      implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1")
      implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3")
    
      // These dependencies are not strictly required, but will very likely be used
      // when writing modern Android applications.
      implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
      implementation("androidx.appcompat:appcompat:1.7.0")
      implementation("androidx.activity:activity-ktx:1.10.1")
      implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
      implementation("com.google.android.material:material:1.12.0")
    }
    
  3. В основной деятельности вашего приложения:

    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
    import android.os.Bundle
    import android.widget.TextView
    import androidx.appcompat.app.AppCompatActivity
    import androidx.lifecycle.Lifecycle
    import androidx.lifecycle.lifecycleScope
    import androidx.lifecycle.repeatOnLifecycle
    import kotlinx.coroutines.launch
    
    
    private val connector = com.myapplication.MoviesConnector.instance
    
    class MainActivity : AppCompatActivity() {
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val textView: TextView = findViewById(R.id.text_view)
    
        lifecycleScope.launch {
          lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
            
            val result = connector.listMovies.runCatching { execute { } }
            
            val newTextViewText = result.fold(
              onSuccess = {
                val titles = it.data.movies.map { it.title }
                "${titles.size} movies: " + titles.joinToString(", ")
              },
              onFailure = { "ERROR: ${it.message}" }
            )
            textView.text = newTextViewText
          }
        }
      }
    }
    
  1. Добавьте Firebase в свое приложение Flutter .
  2. Установите flutterfire CLI dart pub global activate flutterfire_cli .
  3. Запустите flutterfire configure .
  4. В основной функции вашего приложения:
    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';

// Generated queries.
// Update as needed with the path to your generated SDK

import 'movies_connector/movies.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  
  
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            body: Column(children: [
      ConstrainedBox(
        constraints: const BoxConstraints(maxHeight: 200),
        child: FutureBuilder(
            future: MoviesConnector.instance.listMovies().execute(),
            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,
                );
              }
              return const CircularProgressIndicator();
            }),
      )
    ])));
  }
}

Следующие шаги

Просмотрите развернутый проект и откройте для себя дополнительные инструменты:

  • Добавляйте данные в свою базу данных, проверяйте и изменяйте свои схемы, а также отслеживайте работу службы Data Connect в консоли Firebase .

Дополнительную информацию можно найти в документации. Например, после завершения краткого руководства:

,

В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении с помощью производственного экземпляра SQL.

В консоли Firebase вы сможете:

  • Добавьте Firebase Data Connect в свой проект Firebase.
  • Создайте схему для приложения в консоли Firebase с помощью Schema Assist и разверните ее.
  • Предоставьте экземпляр Cloud SQL для своего приложения.
  • С помощью Gemini Code Assist заполните свою базу данных примерами данных .

Затем в вашей локальной среде разработки вы сможете:

  • Настройте инструменты разработки, включая расширение Visual Studio Code, для работы с вашим производственным экземпляром.
  • Синхронизируйте свою локальную среду с ресурсами, созданными вами в консоли.
  • Используйте инструменты расширения, которые помогут вам реализовать запрос , который будет использоваться в вашем приложении.
  • Создавайте строго типизированные SDK и используйте их в своем приложении.
  • Разверните окончательную схему, запрос и данные в облаке.

Поток консоли: спроектируйте свою схему и разверните ее в своей базе данных.

  1. Если вы еще этого не сделали, создайте проект Firebase.
    1. В консоли Firebase нажмите «Добавить проект» и следуйте инструкциям на экране.
  2. Перейдите в раздел Data Connect консоли Firebase .
  3. Нажмите кнопку «Начать работу с Gemini» .
  4. На появившейся панели рабочего процесса генератора схем опишите приложение, чтобы Gemini могла помочь вам создать схему GraphQL.
  5. Просмотрите схему GraphQL, затем нажмите «Обновить и развернуть» .
  6. Обновите свой проект до плана Blaze. Это позволит вам создать экземпляр Cloud SQL для PostgreSQL.

  7. Выберите Создать новый экземпляр Cloud SQL . В появившемся диалоговом окне выберите расположение и имя для вашей базы данных Cloud SQL for PostgreSQL.

    Схема вашего приложения развернута вместе с базой данных PostgreSQL, соответствующей этой схеме.

Порядок работы консоли: используйте Gemini в Firebase , чтобы создать мутацию и заполнить базу данных.

Выполнив предыдущий шаг, вы создали схему Data Connect , состоящую из соответствующих типов сущностей, и развернули ее в рабочей среде, то есть также была создана и развернута база данных PostgreSQL с соответствующими таблицами .

Чтобы заполнить вашу базу данных, вы можете использовать Gemini в Firebase , который поможет вам использовать входные данные на естественном языке для определения мутации GraphQL для обновления одной из ваших таблиц и запроса для подтверждения ваших обновлений.

  1. Откройте вкладку Данные .

  2. Щелкните значок «Помоги мне написать GraphQL pen_spark» и в появившемся поле введите введенные данные.

    Например:

    Add data for three sample products to my app.
    
  3. Нажмите «Создать» . Мутация возвращается.

  4. Просмотрите результат. При необходимости нажмите «Изменить» , чтобы уточнить запрос, и нажмите «Регенерировать» .

  5. Затем нажмите «Вставить» , чтобы вставить мутацию в редактор данных.

  6. Нажмите «Выполнить» .

Когда вы запускаете мутацию, данные записываются в соответствующую таблицу вашей базы данных PostgreSQL. Вы можете создать запрос в консоли для просмотра сохраненных данных:

  1. Повторите предыдущие шаги, используя Помогите мне написать GraphQL pen_spark , чтобы создать запрос.

  2. В появившемся поле введите введенные данные.

    Например:

    Query data for all sample products in my app.
    
  3. Нажмите «Создать» , затем «Выполнить» .

Локальный поток: выберите инструменты разработки

Теперь, когда у вас есть данные в развернутой базе данных, вы можете продолжить разработку схемы и соединителей в локальной среде разработки.

Во-первых, вам необходимо настроить локальную среду. Data Connect предлагает два способа установки инструментов разработки.

Локальный поток: настройка среды разработки

  1. Создайте новый каталог для вашего локального проекта.
  2. Запустите следующую команду в новом созданном каталоге.

      curl -sL https://firebase.tools/dataconnect | bash

    Этот сценарий пытается настроить для вас среду разработки и запустить IDE на основе браузера. Эта IDE предоставляет инструменты, в том числе предварительно связанное расширение VS Code, которые помогут вам управлять схемой, определять запросы и мутации, которые будут использоваться в вашем приложении, а также генерировать строго типизированные SDK.

alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'

Локальный поток: настройка каталога проекта

Чтобы настроить локальный проект, инициализируйте каталог проекта. В окне IDE на левой панели щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:

  1. Нажмите кнопку «Войти через Google» .
  2. Нажмите кнопку «Подключить проект Firebase» и выберите в консоли проект, который вы создали ранее.
  3. Нажмите кнопку «Запустить инициализацию Firebase» и завершите процесс.

  4. Нажмите кнопку «Запустить эмуляторы» .

Локальный поток: найдите свою схему в локальной среде.

Шаг firebase init в предыдущем разделе, синхронизировал схему, которую вы развернули из консоли, с вашей локальной средой разработки.

Найдите свою схему: она находится в каталоге вашего проекта Firebase, в файле /dataconnect/schema/schema.gql .

Локальный поток: работа со своей схемой

Пример схемы: Фильм

В Data Connect поля GraphQL сопоставляются со столбцами. Тип Movie , скорее всего, будет иметь id , title , imageUrl и genre . Data Connect распознает примитивные типы данных String и UUID .

# File `/dataconnect/schema/schema.gql`

# By default, a UUID id key will be created by default as primary key.
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

Таблица примера схемы 1:1: MovieMetadata

С помощью фильмов вы можете моделировать метаданные фильма.

Например, в schema.gql вы можете добавить следующий фрагмент или код проверки, созданный Gemini .

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # This time, we omit adding a primary key because
  # you can rely on Data Connect to manage it.

  # @unique indicates a 1-1 relationship
  movie: Movie! @unique
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

Обратите внимание, что поле movie сопоставлено с типом Movie . Data Connect понимает, что это связь между Movie и MovieMetadata , и будет управлять этой связью за вас.

Дополнительные сведения о схемах Data Connect см. в документации.

Локальный поток: добавьте больше данных в свои таблицы

На панели редактора IDE вы можете увидеть, как кнопки CodeLens появляются над типами GraphQL в /dataconnect/schema/schema.gql . Как и в консоли, вы можете создать мутацию для добавления данных в рабочую базу данных.

Работая локально, чтобы добавить данные в таблицу:

  1. В schema.gql нажмите кнопку «Добавить данные» над объявлением одного из ваших типов (например, Movie , Product , Account , в зависимости от типа вашего приложения).
    Кнопка Code Lens Добавить данные для Firebase Data Connect
  2. В ваш рабочий каталог добавляется новый файл <type>_insert.qgl , например Movie_insert.gql или Product_insert.gql . Данные жесткого кода в полях для этого типа.
  3. Нажмите кнопку «Запустить (Производство)» .
    Кнопка Code Lens Run для Firebase Data Connect
  4. Повторите предыдущие шаги, чтобы добавить запись в другие таблицы.

Для быстрой проверки данных добавлено:

  1. Вернувшись в schema.gql , нажмите кнопку «Читать данные» над объявлением типа.
  2. В полученном файле <type>_read.gql , например Product_read.gql , нажмите кнопку «Выполнить (Производство)» , чтобы выполнить запрос.

Узнайте больше о мутациях Data Connect в документации.

Локальный поток: определите свой запрос

Теперь самое интересное, запросы. Как разработчик, вы привыкли писать запросы SQL, а не запросы GraphQL, поэтому поначалу это может показаться немного другим. Однако GraphQL гораздо более краток и типобезопасен, чем чистый SQL. А наше расширение VS Code упрощает разработку.

Чтобы реализовать запрос, вы можете адаптировать запрос, сгенерированный с помощью нашего CodeLens:

  1. В /dataconnect/schema/schema.gql над типом ( Movie , Product , Account и т. д.) нажмите кнопку Read data CodeLens.
  2. В полученном файле <type>_read.gql проверьте запрос, нажав кнопку «Выполнить (производство)» .
  3. Скопируйте работающий запрос в /dataconnect/connector/queries.gql .
  4. Чтобы этот запрос можно было развернуть, объявите для него уникальное имя.

    Например, в следующем общем примере query_name может быть ListMovies , ListProducts или ListAccounts .

# File `/dataconnect/connector/queries.gql`

# @auth() directives control who can call each operation.
query <query_name> @auth(level: PUBLIC) {
   <table_name> {
     <field_1>
     <field_2>
     <field_3>
  }
}

Выполните запрос, используя расположенную рядом кнопку CodeLens.

Дополнительные сведения о запросах Data Connect см. в документации.

Локальный поток: создание SDK

  1. Нажмите кнопку «Добавить SDK в приложение» .
  2. В появившемся диалоговом окне выберите каталог, содержащий код вашего приложения. Код Data Connect SDK будет создан и сохранен там.

  3. Выберите платформу своего приложения и обратите внимание, что код SDK сразу же создается в выбранном вами каталоге.

Локальный поток: разверните свою схему и запросите ее в рабочей среде

Вы прошли итерацию разработки. Теперь вы можете развернуть свою схему и запросы на сервере с помощью пользовательского интерфейса расширения Firebase или интерфейса командной строки Firebase , так же, как вы это делали со своей схемой.

В окне IDE в пользовательском интерфейсе расширения кода VS нажмите кнопку «Развернуть в производство» .

После развертывания перейдите в консоль Firebase , чтобы убедиться, что обновления схемы (если применимо) и операции загружены в облако. У вас должна быть возможность просматривать схему и выполнять операции на консоли. Экземпляр Cloud SQL для PostgreSQL будет обновлен с учетом окончательной развернутой сгенерированной схемы и данных.

Подробную информацию об использовании эмулятора Data Connect можно найти в документации.

Локальный поток: используйте SDK для вызова запроса из приложения.

Теперь, когда ваша обновленная схема (если применимо). и ваш запрос развернут в рабочей среде, вы можете использовать SDK, созданный Data Connect , для реализации вызова вашего запроса ListMovies .

  1. Добавьте Firebase в свое веб- приложение.
  2. В главном файле вашего приложения React:

    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
    import React from 'react';
    import ReactDOM from 'react-dom/client';
    
    // Generated queries.
    // Update as needed with the path to your generated SDK.
    import { listMovies, ListMoviesData } from '@movie-app/movies';
    
    function App() {
      const [movies, setMovies] = useState<ListMoviesData['movies']>([]);
      useEffect(() => {
        listMovies.then(res => setMovies(res.data));
      }, []);
      return (
        movies.map(movie => <h1>{movie.title}</h1>);
      );
    }
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(<App />);
    
  1. Добавьте Firebase в свое приложение для iOS .
  2. Чтобы использовать сгенерированный SDK, настройте его как зависимость в Xcode.

    В верхней панели навигации Xcode выберите «Файл» > «Добавить зависимости пакета» > «Добавить локальный» и выберите папку, содержащую сгенерированный Package.swift .

  3. В главном делегате вашего приложения:

    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
    import SwiftUI
    
    import FirebaseDataConnect
    // Generated queries.
    // Update as needed with the package name of your generated SDK.
    import <CONNECTOR-PACKAGE-NAME>
    
    let connector = DataConnect.moviesConnector
    
    struct ListMovieView: View {
    @StateObject private var queryRef = connector.listMovies.ref()
    
        var body: some View {
            VStack {
                Button {
                    Task {
                        do {
                            try await refresh()
                        } catch {
                            print("Failed to refresh: \(error)")
                        }
                    }
                } label: {
                    Text("Refresh")
                }
    
                // use the query results in a view
                ForEach(queryRef.data?.movies ?? []) { movie in
                        Text(movie.title)
                    }
                }
        }
        @MainActor
        func refresh() async throws {
            _ = try await queryRef.execute()
        }
    
        struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ListMovieView()
        }
    }
    
  1. Добавьте Firebase в свое приложение для Android .
  2. Чтобы использовать созданный SDK, настройте Data Connect как зависимость в Gradle.

    Обновите plugins и dependencies в вашем app/build.gradle.kts .

    plugins {
      // Use whichever versions of these dependencies suit your application.
      // The versions shown here were the latest as of March 14, 2025.
      // Note, however, that the version of kotlin("plugin.serialization") must,
      // in general, match the version of kotlin("android").
      id("com.android.application") version "8.9.0"
      id("com.google.gms.google-services") version "4.4.2"
      val kotlinVersion = "2.1.10"
      kotlin("android") version kotlinVersion
      kotlin("plugin.serialization") version kotlinVersion
    }
    
    dependencies {
      // Use whichever versions of these dependencies suit your application.
      // The versions shown here were the latest versions as of March 14, 2025.
      implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04")
      implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1")
      implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3")
    
      // These dependencies are not strictly required, but will very likely be used
      // when writing modern Android applications.
      implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
      implementation("androidx.appcompat:appcompat:1.7.0")
      implementation("androidx.activity:activity-ktx:1.10.1")
      implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
      implementation("com.google.android.material:material:1.12.0")
    }
    
  3. В основной деятельности вашего приложения:

    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
    import android.os.Bundle
    import android.widget.TextView
    import androidx.appcompat.app.AppCompatActivity
    import androidx.lifecycle.Lifecycle
    import androidx.lifecycle.lifecycleScope
    import androidx.lifecycle.repeatOnLifecycle
    import kotlinx.coroutines.launch
    
    
    private val connector = com.myapplication.MoviesConnector.instance
    
    class MainActivity : AppCompatActivity() {
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val textView: TextView = findViewById(R.id.text_view)
    
        lifecycleScope.launch {
          lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
            
            val result = connector.listMovies.runCatching { execute { } }
            
            val newTextViewText = result.fold(
              onSuccess = {
                val titles = it.data.movies.map { it.title }
                "${titles.size} movies: " + titles.joinToString(", ")
              },
              onFailure = { "ERROR: ${it.message}" }
            )
            textView.text = newTextViewText
          }
        }
      }
    }
    
  1. Добавьте Firebase в свое приложение Flutter .
  2. Установите flutterfire CLI dart pub global activate flutterfire_cli .
  3. Запустите flutterfire configure .
  4. В основной функции вашего приложения:
    • импортируйте сгенерированный SDK
    • вызвать методы Data Connect .
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';

// Generated queries.
// Update as needed with the path to your generated SDK

import 'movies_connector/movies.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  
  
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            body: Column(children: [
      ConstrainedBox(
        constraints: const BoxConstraints(maxHeight: 200),
        child: FutureBuilder(
            future: MoviesConnector.instance.listMovies().execute(),
            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,
                );
              }
              return const CircularProgressIndicator();
            }),
      )
    ])));
  }
}

Следующие шаги

Просмотрите развернутый проект и откройте для себя дополнительные инструменты:

  • Добавляйте данные в свою базу данных, проверяйте и изменяйте свои схемы, а также отслеживайте работу службы Data Connect в консоли Firebase .

Дополнительную информацию можно найти в документации. Например, после завершения краткого руководства:

,

В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении с помощью производственного экземпляра SQL.

В консоли Firebase вы сможете:

  • Добавьте Firebase Data Connect в свой проект Firebase.
  • Создайте схему для приложения в консоли Firebase с помощью Schema Assist и разверните ее.
  • Предоставьте экземпляр Cloud SQL для своего приложения.
  • С помощью Gemini Code Assist заполните свою базу данных примерами данных .

Затем в вашей локальной среде разработки вы сможете:

  • Настройте инструменты разработки, включая расширение Visual Studio Code, для работы с вашим производственным экземпляром.
  • Синхронизируйте свою локальную среду с ресурсами, созданными вами в консоли.
  • Используйте инструменты расширения, которые помогут вам реализовать запрос , который будет использоваться в вашем приложении.
  • Создавайте строго типизированные SDK и используйте их в своем приложении.
  • Разверните окончательную схему, запрос и данные в облаке.

Поток консоли: спроектируйте свою схему и разверните ее в своей базе данных.

  1. Если вы еще этого не сделали, создайте проект Firebase.
    1. В консоли Firebase нажмите «Добавить проект» и следуйте инструкциям на экране.
  2. Перейдите в раздел Data Connect консоли Firebase .
  3. Нажмите кнопку «Начать работу с Gemini» .
  4. На появившейся панели рабочего процесса генератора схем опишите приложение, чтобы Gemini могла помочь вам создать схему GraphQL.
  5. Просмотрите схему GraphQL, затем нажмите «Обновить и развернуть» .
  6. Обновите свой проект до плана Blaze. Это позволит вам создать экземпляр Cloud SQL для PostgreSQL.

  7. Выберите Создать новый экземпляр Cloud SQL . В появившемся диалоговом окне выберите расположение и имя для вашей базы данных Cloud SQL for PostgreSQL.

    Схема вашего приложения развернута вместе с базой данных PostgreSQL, соответствующей этой схеме.

Порядок работы консоли: используйте Gemini в Firebase , чтобы создать мутацию и заполнить базу данных.

Завершая предыдущий шаг, вы создали схему Data Connect , состоящую из соответствующих типов объектов, и развернули ее для производства, что означает также создан и развернута база данных PostgreSQL с соответствующими таблицами .

Чтобы заполнить вашу базу данных, вы можете использовать Gemini в Firebase , чтобы помочь вам принять входные данные о естественном языке для определения мутации GraphQL для обновления одной из ваших таблиц и запроса для подтверждения ваших обновлений.

  1. Откройте вкладку Data .

  2. Нажмите на значок «Помочь мне» написать graphql pen_spark , и, в появлении, введите свой ввод.

    Например:

    Add data for three sample products to my app.
    
  3. Нажмите Generate . Мутация возвращается.

  4. Просмотрите вывод. При необходимости нажмите «Редактировать» , чтобы уточнить подсказку и нажмите «Регенерат» .

  5. Далее нажмите «Вставить» , чтобы вставить мутацию в редактор данных.

  6. Нажмите запустить .

Когда вы запускаете мутацию, данные записываются в применимую таблицу в вашей базе данных PostgreSQL. Вы можете создать запрос в консоли для просмотра хранимых данных:

  1. Повторите предыдущие шаги, используя помогите мне написать graphql pen_spark , чтобы создать запрос.

  2. В появлении, которая введите свой вход.

    Например:

    Query data for all sample products in my app.
    
  3. Нажмите Generate , затем запустите .

Локальный поток: выберите инструмент разработки

Теперь, когда у вас есть данные в вашей развернутой базе данных, вы можете продолжить разработку своей схемы и разъемов в местной среде разработки.

Во -первых, вам нужно настроить локальную среду. Data Connect предлагает вам два способа установить инструменты разработки.

Локальный поток: настроить среду разработки

  1. Создайте новый каталог для вашего местного проекта.
  2. Запустите следующую команду в созданном вами новом каталоге.

      curl -sL https://firebase.tools/dataconnect | bash

    Этот скрипт пытается настроить среду разработки для вас и запустить IDE на основе браузера. Этот IDE предоставляет инструменты, в том числе предварительно связанное расширение кода, чтобы помочь вам управлять вашей схемой и определить запросы и мутации, которые будут использоваться в вашем приложении, и генерировать SDK с твердыми типами.

alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'

Локальный поток: настройте каталог проекта

Чтобы настроить локальный проект, инициализируйте свой каталог проекта. В окне IDE, на левой панели, щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:

  1. Нажмите кнопку Google .
  2. Нажмите кнопку «Подключить кнопку проекта Firebase» и выберите проект, который вы создали ранее в консоли.
  3. Нажмите кнопку «Запустить Firebase» и заполните поток.

  4. Нажмите кнопку «Пуск эмуляторов» .

Местный поток: найдите свою схему в местной среде

Инициация firebase init в предыдущем разделе синхронизировала схему, которую вы развернули из консоли в вашу местную среду разработки.

Найдите свою схему: она расположена в вашем каталоге проекта Firebase, в файле /dataconnect/schema/schema.gql schema.gql.

Местный поток: работайте со своей схемой

Пример схемы: фильм

В Data Connect поля GraphQL сопоставлены с столбцами. Тип Movie , вероятно, будет иметь id , title , imageUrl и genre . Data Connect распознает примитивную String типов данных и UUID .

# File `/dataconnect/schema/schema.gql`

# By default, a UUID id key will be created by default as primary key.
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

Схема Пример 1: 1 Таблица: Moviemetadata

С фильмами вы можете моделировать метаданные фильма.

Например, в schema.gql вы можете добавить следующий фрагмент или код просмотра, сгенерированный Gemini .

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # This time, we omit adding a primary key because
  # you can rely on Data Connect to manage it.

  # @unique indicates a 1-1 relationship
  movie: Movie! @unique
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

Обратите внимание, что поле movie сопоставлено с типом Movie . Data Connect понимает, что это отношения между Movie и MovieMetadata , и они будут управлять этими отношениями для вас.

Узнайте больше о схемах подключения данных в документации

Локальный поток: добавьте больше данных в ваши таблицы

На панели редактора IDE вы можете увидеть, как кнопки Codelens появляются по типам graphQL в /dataconnect/schema/schema.gql . Как и в консоли, вы можете создать мутацию для добавления данных в свою производственную базу данных.

Работаю локально, чтобы добавить данные в таблицу:

  1. В schema.gql нажмите кнопку «Добавить данные» над объявлением одного из ваших типов (например, Movie , Product , Account , в зависимости от характера вашего приложения).
    Кодовая линза добавить кнопку данных для подключения данных Firebase
  2. Новый файл, <type>_insert.qgl , добавляется в ваш рабочий каталог, такой как Movie_insert.gql или Product_insert.gql . Данные жестких кодов в полях для этого типа.
  3. Нажмите кнопку «Запустить» (производство) .
    Кнопка запуска кода для подключения данных Firebase Connect
  4. Повторите предыдущие шаги, чтобы добавить запись в другие таблицы.

Чтобы быстро проверить данные, были добавлены:

  1. Вернувшись в schema.gql , нажмите кнопку «Читать данные» над объявлением типа.
  2. В полученном файле <type>_read.gql , например, Product_read.gql , нажмите кнопку Run (Производство) , чтобы выполнить запрос.

Узнайте больше о данных, подключив мутации в документации

Локальный поток: определите свой запрос

Теперь самое интересное, запросы. Как разработчик, вы привыкли писать запросы SQL, а не запросы GraphQL, так что это может показаться немного другим. Тем не менее, GraphQL гораздо более эру и тип, чем RAW SQL. И наше расширение кода VS облегчает опыт разработки.

Чтобы внедрить запрос, вы можете адаптировать один, сгенерированный с нашими коделенами:

  1. В /dataconnect/schema/schema.gql , выше типа ( Movie , Product , Account и т. Д.), Нажмите кнопку «Читать данные» Codelens.
  2. В полученном файле <type>_read.gql протестируйте запрос, нажав кнопку «Запустить» (производство) .
  3. Скопируйте функционирующий запрос в /dataconnect/connector/queries.gql .
  4. Чтобы сделать этот запрос развертываемым, объявите для него уникальное имя.

    Например, в следующем общем примере query_name может быть ListMovies , или ListProducts , или ListAccounts .

# File `/dataconnect/connector/queries.gql`

# @auth() directives control who can call each operation.
query <query_name> @auth(level: PUBLIC) {
   <table_name> {
     <field_1>
     <field_2>
     <field_3>
  }
}

Выполните запрос, используя ближайшую кнопку Codelens.

Узнайте больше о данных подключения запросов в документации

Локальный поток: генерировать SDK

  1. Нажмите кнопку «Добавить SDK в приложение» .
  2. В появлении диалога выберите каталог, содержащий код для вашего приложения. Data Connect Code будет сгенерирована и сохранена там.

  3. Выберите платформу приложений, затем обратите внимание, что код SDK сразу же генерируется в выбранном вами каталоге.

Местный поток: разверните свою схему и запрос на производство

Вы работали через итерацию разработки. Теперь вы можете развернуть свою схему и запросы на сервер с помощью пользовательского интерфейса Firebase Extension или CLI Firebase , как и со своей схемой.

В окне IDE, в пользовательском интерфейсе vs Extension Extension, нажмите кнопку «Развернуть к производству» .

После развертывания перейдите в консоль Firebase , чтобы проверить обновления схемы (если применимо), а операции были загружены в облако. Вы должны иметь возможность просматривать схему, а также запустить свою деятельность на консоли. Cloud SQL для экземпляра PostgreSQL будет обновлен с помощью окончательной развернутой сгенерированной схемы и данных.

Узнайте больше об использовании эмулятора Data Connect в документации

Локальный поток: используйте SDK, чтобы вызвать ваш запрос из приложения

Теперь, когда ваша обновленная схема (если применима). И ваш запрос развернут в производстве, вы можете использовать SDK, который Data Connect сгенерированные для реализации вызова вашего запроса ListMovies .

  1. Добавьте Firebase в ваше веб -приложение.
  2. В основном файле вашего приложения React:

    • импортируйте сгенерированный SDK
    • Вызовые Data Connect методов.
    import React from 'react';
    import ReactDOM from 'react-dom/client';
    
    // Generated queries.
    // Update as needed with the path to your generated SDK.
    import { listMovies, ListMoviesData } from '@movie-app/movies';
    
    function App() {
      const [movies, setMovies] = useState<ListMoviesData['movies']>([]);
      useEffect(() => {
        listMovies.then(res => setMovies(res.data));
      }, []);
      return (
        movies.map(movie => <h1>{movie.title}</h1>);
      );
    }
    
    const root = ReactDOM.createRoot(document.getElementById('root'));
    root.render(<App />);
    
  1. Добавьте Firebase в приложение для iOS .
  2. Чтобы использовать сгенерированный SDK, настройте его как зависимость в XCode.

    В верхней навигационной панели Xcode выберите «Файл»> «Добавить зависимости пакета»> «Добавить локальный» и выберите папку, содержащую сгенерированный Package.swift Swift.

  3. В главном делегате вашего приложения:

    • импортируйте сгенерированный SDK
    • Вызовые Data Connect методов.
    import SwiftUI
    
    import FirebaseDataConnect
    // Generated queries.
    // Update as needed with the package name of your generated SDK.
    import <CONNECTOR-PACKAGE-NAME>
    
    let connector = DataConnect.moviesConnector
    
    struct ListMovieView: View {
    @StateObject private var queryRef = connector.listMovies.ref()
    
        var body: some View {
            VStack {
                Button {
                    Task {
                        do {
                            try await refresh()
                        } catch {
                            print("Failed to refresh: \(error)")
                        }
                    }
                } label: {
                    Text("Refresh")
                }
    
                // use the query results in a view
                ForEach(queryRef.data?.movies ?? []) { movie in
                        Text(movie.title)
                    }
                }
        }
        @MainActor
        func refresh() async throws {
            _ = try await queryRef.execute()
        }
    
        struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ListMovieView()
        }
    }
    
  1. Добавьте Firebase в ваше приложение для Android .
  2. Чтобы использовать сгенерированный SDK, настройте Data Connect как зависимость в Градле.

    Обновите plugins и dependencies в вашем app/build.gradle.kts .

    plugins {
      // Use whichever versions of these dependencies suit your application.
      // The versions shown here were the latest as of March 14, 2025.
      // Note, however, that the version of kotlin("plugin.serialization") must,
      // in general, match the version of kotlin("android").
      id("com.android.application") version "8.9.0"
      id("com.google.gms.google-services") version "4.4.2"
      val kotlinVersion = "2.1.10"
      kotlin("android") version kotlinVersion
      kotlin("plugin.serialization") version kotlinVersion
    }
    
    dependencies {
      // Use whichever versions of these dependencies suit your application.
      // The versions shown here were the latest versions as of March 14, 2025.
      implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04")
      implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1")
      implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3")
    
      // These dependencies are not strictly required, but will very likely be used
      // when writing modern Android applications.
      implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
      implementation("androidx.appcompat:appcompat:1.7.0")
      implementation("androidx.activity:activity-ktx:1.10.1")
      implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
      implementation("com.google.android.material:material:1.12.0")
    }
    
  3. В основной деятельности вашего приложения:

    • импортируйте сгенерированный SDK
    • Вызовые Data Connect методов.
    import android.os.Bundle
    import android.widget.TextView
    import androidx.appcompat.app.AppCompatActivity
    import androidx.lifecycle.Lifecycle
    import androidx.lifecycle.lifecycleScope
    import androidx.lifecycle.repeatOnLifecycle
    import kotlinx.coroutines.launch
    
    
    private val connector = com.myapplication.MoviesConnector.instance
    
    class MainActivity : AppCompatActivity() {
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val textView: TextView = findViewById(R.id.text_view)
    
        lifecycleScope.launch {
          lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
            
            val result = connector.listMovies.runCatching { execute { } }
            
            val newTextViewText = result.fold(
              onSuccess = {
                val titles = it.data.movies.map { it.title }
                "${titles.size} movies: " + titles.joinToString(", ")
              },
              onFailure = { "ERROR: ${it.message}" }
            )
            textView.text = newTextViewText
          }
        }
      }
    }
    
  1. Добавьте Firebase в приложение Flutter .
  2. Установите Flutterfire Cli dart pub global activate flutterfire_cli .
  3. Запустить flutterfire configure .
  4. В основной функции вашего приложения:
    • импортируйте сгенерированный SDK
    • Вызовые Data Connect методов.
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';

// Generated queries.
// Update as needed with the path to your generated SDK

import 'movies_connector/movies.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  
  
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            body: Column(children: [
      ConstrainedBox(
        constraints: const BoxConstraints(maxHeight: 200),
        child: FutureBuilder(
            future: MoviesConnector.instance.listMovies().execute(),
            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,
                );
              }
              return const CircularProgressIndicator();
            }),
      )
    ])));
  }
}

Следующие шаги

Просмотрите свой развернутый проект и обнаружите больше инструментов:

  • Добавьте данные в свою базу данных, осмотрите и измените свои схемы и отслеживайте службу Data Connect в консоли Firebase .

Доступ к дополнительной информации в документации. Например, с тех пор, как вы завершили QuickStart: