شروع کار با Firebase Data Connect با استفاده از Flutter

در این آموزش سریع، شما یک پایگاه داده نمونه کوچک ایجاد و مستقر خواهید کرد و از طریق رابط کاربری Flutter به آن دسترسی خواهید داشت.

پیش‌نیازها

برای تکمیل این راهنمای سریع، به موارد زیر نیاز دارید:

آموزش

آموزش

۱. یک پروژه جدید Firebase ایجاد کنید

با ایجاد یک پروژه جدید Firebase در کنسول Firebase شروع کنید. سپس، پروژه را به طرح Blaze ارتقا دهید.

۲. پروژه خود را راه‌اندازی کنید

یک دایرکتوری جدید ایجاد کنید و یک پروژه Firebase را در آن راه‌اندازی کنید. در صورت درخواست، گزینه‌های زیر را انتخاب کنید:

  • پروژه‌ای که در مرحله قبل ایجاد کردید را انتخاب کنید.
  • با Gemini طرحواره ایجاد نکنید (در این آموزش، از یک طرحواره نمونه از پیش ساخته شده استفاده خواهید کرد).
  • یک نمونه جدید Cloud SQL ایجاد کنید.
  • یک الگوی Flutter ایجاد کنید.
mkdir myproj ; cd myproj
firebase login --reauth
firebase init dataconnect

۳. مثال‌های تعاریف 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
}
dataconnect/example/queries.gql (گزیده)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

۴. طرح‌ها و عملیات خود را مستقر کنید

هر زمان که تغییراتی در طرحواره‌ها، پرس‌وجوها یا جهش‌های پایگاه داده خود ایجاد می‌کنید، باید آنها را مستقر کنید تا تغییرات شما روی پایگاه داده اعمال شوند.

firebase deploy --only dataconnect

۵. پایگاه داده را با داده‌های نمونه پر کنید

این داده‌های اولیه به شما امکان می‌دهد هنگام آزمایش برنامه نمونه، آنها را بررسی کنید. توجه داشته باشید که در این مرحله، شما GraphQL دلخواه را اجرا می‌کنید که برای وظایف مدیریتی مجاز است.

firebase dataconnect:execute dataconnect/seed_data.gql

۶. یک SDK کلاینت Dart ایجاد کنید

این دستور از تعاریف GraphQL شما برای تولید یک کتابخانه Dart مخصوص پایگاه داده شما استفاده می‌کند. شما از این کتابخانه در برنامه کلاینت خود برای انجام تمام عملیات پایگاه داده استفاده می‌کنید.

شما می‌توانید با اضافه کردن تعاریف به connector.yaml ، کتابخانه‌هایی برای پلتفرم‌های مختلف، از جمله Kotlin برای اندروید، Swift برای iOS و JavaScript برای وب، ایجاد کنید.

firebase dataconnect:sdk:generate
Dart SDK تولید شده خودکار (گزیده)
class ExampleConnector {
  ListMoviesVariablesBuilder listMovies() {
    return ListMoviesVariablesBuilder(dataConnect);
  }

  // ...
}

۷. یک برنامه Flutter راه‌اندازی کنید

این دستورات را اجرا کنید تا برنامه Flutter برای استفاده از پروژه Firebase شما تنظیم شود.

وقتی دستور flutterfire از شما خواسته شد، پروژه Firebase که قبلاً ایجاد کرده‌اید را انتخاب کنید و پلتفرم‌هایی را که می‌خواهید هدف قرار دهید، انتخاب کنید.

cd flutter_app
flutter pub add firebase_core firebase_data_connect
flutterfire configure

۸. یک کلاینت نمونه Flutter بنویسید

محتویات flutter_app/lib/main.dart را با این برنامه ساده 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());
}

۹. برنامه را امتحان کنید

برای مشاهده‌ی عملکرد برنامه‌ی نمونه، سرور توسعه را اجرا کنید.

flutter run

مراحل بعدی

افزونه‌ی 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 بنویسید. با صفحه طرحواره‌های Design Data Connect شروع کنید و برای یادگیری نحوه نوشتن عملیات، به صفحات بعدی بروید.