Bắt đầu sử dụng Firebase Data Connect bằng Flutter

Trong hướng dẫn nhanh này, bạn sẽ tạo và triển khai một cơ sở dữ liệu mẫu nhỏ, đồng thời truy cập vào cơ sở dữ liệu đó từ giao diện người dùng Flutter.

Điều kiện tiên quyết

Để hoàn tất hướng dẫn bắt đầu nhanh này, bạn cần có những thứ sau:

Hướng dẫn

Hướng dẫn

1. Tạo một dự án Firebase mới

Bắt đầu bằng cách tạo một dự án Firebase mới trong bảng điều khiển Firebase. Sau đó, hãy nâng cấp dự án lên gói Blaze.

2. Khởi chạy dự án

Tạo một thư mục mới và khởi chạy một dự án Firebase trong thư mục đó. Khi được nhắc, hãy chọn các lựa chọn sau:

  • Chọn dự án bạn đã tạo ở bước trước.
  • Không tạo giản đồ bằng Gemini (trong hướng dẫn này, bạn sẽ sử dụng một giản đồ ví dụ được tạo sẵn).
  • Tạo một phiên bản Cloud SQL mới.
  • Tạo mẫu Flutter.
mkdir myproj ; cd myproj
firebase login --reauth
firebase init dataconnect

3. Xem lại các định nghĩa GraphQL mẫu

Trong Data Connect, bạn xác định tất cả các giản đồ và thao tác cơ sở dữ liệu bằng GraphQL. Khi bạn khởi chạy dự án, CLI Firebase đã tạo một số định nghĩa mẫu để giúp bạn bắt đầu.

dataconnect/schema/schema.gql (đoạn trích)
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 (đoạn trích)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

4. Triển khai giản đồ và các thao tác

Mỗi khi thay đổi giản đồ, truy vấn hoặc đột biến cơ sở dữ liệu, bạn phải triển khai các thay đổi đó để chúng có hiệu lực trên cơ sở dữ liệu.

firebase deploy --only dataconnect

5. Điền dữ liệu mẫu vào cơ sở dữ liệu

Dữ liệu ban đầu này sẽ giúp bạn có thông tin để xem khi kiểm thử ứng dụng mẫu. Xin lưu ý rằng trong bước này, bạn đang thực thi GraphQL tuỳ ý, được phép cho các tác vụ quản trị.

firebase dataconnect:execute dataconnect/seed_data.gql

6. Tạo SDK ứng dụng Dart

Lệnh này sử dụng các định nghĩa GraphQL của bạn để tạo một thư viện Dart dành riêng cho cơ sở dữ liệu của bạn. Bạn sử dụng thư viện này trong ứng dụng khách để thực hiện tất cả các thao tác liên quan đến cơ sở dữ liệu.

Bạn có thể tạo thư viện cho nhiều nền tảng, bao gồm Kotlin cho Android, Swift cho iOS và JavaScript cho web, bằng cách thêm các định nghĩa vào connector.yaml.

firebase dataconnect:sdk:generate
SDK Dart được tạo tự động (trích đoạn)
class ExampleConnector {
  ListMoviesVariablesBuilder listMovies() {
    return ListMoviesVariablesBuilder(dataConnect);
  }

  // ...
}

7. Thiết lập ứng dụng Flutter

Chạy các lệnh này để thiết lập ứng dụng Flutter sử dụng dự án Firebase của bạn.

Khi được nhắc bằng lệnh flutterfire, hãy chọn dự án Firebase mà bạn đã tạo trước đó và chọn các nền tảng mà bạn muốn nhắm đến.

cd flutter_app
flutter pub add firebase_core firebase_data_connect
flutterfire configure

8. Viết một ứng dụng Flutter mẫu

Thay thế nội dung của flutter_app/lib/main.dart bằng ứng dụng Flutter đơn giản này.

Lưu ý rằng ứng dụng hoàn tất quyền truy cập cần thiết vào cơ sở dữ liệu bằng cách sử dụng một hàm từ SDK đã tạo.

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. Dùng thử ứng dụng

Khởi động máy chủ phát triển để xem ứng dụng mẫu hoạt động.

flutter run

Các bước tiếp theo

Dùng thử tiện ích Visual Studio Code

Khi phát triển bằng Data Connect, bạn nên dùng tiện ích Visual Studio Code. Ngay cả khi bạn không sử dụng Visual Studio Code làm môi trường phát triển chính, tiện ích này vẫn cung cấp một số tính năng giúp việc phát triển lược đồ và thao tác trở nên thuận tiện hơn:

  • Một máy chủ ngôn ngữ GraphQL, cung cấp tính năng kiểm tra cú pháp và đề xuất tự động hoàn thành dành riêng cho Data Connect
  • Các nút CodeLens nằm cùng dòng với mã của bạn, cho phép bạn đọc và ghi dữ liệu từ các tệp định nghĩa lược đồ, đồng thời thực thi các truy vấn và đột biến từ các định nghĩa thao tác.
  • Tự động đồng bộ hoá các SDK đã tạo với định nghĩa GraphQL.
  • Đơn giản hoá quá trình thiết lập trình mô phỏng cục bộ.
  • Đơn giản hoá việc triển khai cho kênh phát hành công khai.

Sử dụng trình mô phỏng Data Connect để phát triển cục bộ

Mặc dù hướng dẫn này cho bạn biết cách triển khai trực tiếp các lược đồ và thao tác Data Connect vào bản phát hành chính thức, nhưng có thể bạn sẽ không muốn thay đổi cơ sở dữ liệu phát hành chính thức trong khi đang tích cực phát triển ứng dụng. Thay vào đó, hãy thiết lập trình mô phỏng Data Connect và thực hiện công việc phát triển dựa trên trình mô phỏng này thay vì bản phát hành chính thức. Trình mô phỏng thiết lập một phiên bản PGlite cục bộ hoạt động tương tự như một phiên bản Postgres đang hoạt động trên CloudSQL.

Tìm hiểu cách viết giản đồ và các thao tác cho ứng dụng của bạn

Khi phát triển ứng dụng bằng Data Connect, việc thiết kế các lược đồ và thao tác là một trong những nhiệm vụ phát triển đầu tiên và quan trọng nhất mà bạn sẽ hoàn thành.

  • Gemini trong bảng điều khiển Firebase là một công cụ AI có thể tạo lược đồ Data Connect từ nội dung mô tả bằng ngôn ngữ tự nhiên về ứng dụng của bạn. Công cụ này có thể giúp bạn bắt đầu rất nhanh, đặc biệt nếu bạn chưa từng làm việc với cơ sở dữ liệu quan hệ.
  • Ngoài ra, bạn có thể viết trực tiếp các giản đồ cơ sở dữ liệu, truy vấn và đột biến bằng GraphQL. Bắt đầu với trang Thiết kế Data Connect các lược đồ và tiếp tục xem các trang tiếp theo để tìm hiểu cách viết các thao tác.