Mulai menggunakan Firebase Data Connect menggunakan Flutter

Dalam panduan memulai ini, Anda akan membuat dan men-deploy contoh database kecil serta mengaksesnya dari frontend Flutter.

Prasyarat

Untuk menyelesaikan panduan memulai ini, Anda memerlukan hal berikut:

  • Lingkungan dengan alat berikut yang terinstal:
  • Akun Google.

Tutorial

Tutorial

1. Buat project Firebase baru

Mulailah dengan membuat project Firebase baru di Firebase console. Kemudian, upgrade project ke paket Blaze.

2. Melakukan inisialisasi project

Buat direktori baru dan lakukan inisialisasi project Firebase di dalamnya. Jika diminta, pilih opsi berikut:

  • Pilih project yang Anda buat pada langkah sebelumnya.
  • Jangan membuat skema dengan Gemini (dalam tutorial ini, Anda akan menggunakan contoh skema bawaan).
  • Buat instance Cloud SQL baru.
  • Buat template Flutter.
mkdir myproj ; cd myproj
firebase login --reauth
firebase init dataconnect

3. Tinjau contoh definisi GraphQL

Di Data Connect, Anda menentukan semua skema dan operasi database menggunakan GraphQL. Saat Anda menginisialisasi project, Firebase CLI membuat beberapa contoh definisi untuk membantu Anda memulai.

dataconnect/schema/schema.gql (kutipan)
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 (kutipan)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

4. Men-deploy skema dan operasi Anda

Setiap kali Anda membuat perubahan pada skema, kueri, atau mutasi database, Anda harus men-deploy-nya agar perubahan diterapkan pada database.

firebase deploy --only dataconnect

5. Mengisi database dengan data sampel

Data awal ini akan memberi Anda sesuatu untuk dilihat saat menguji aplikasi contoh. Perhatikan bahwa pada langkah ini Anda menjalankan GraphQL arbitrer, yang diizinkan untuk tugas administratif.

firebase dataconnect:execute dataconnect/seed_data.gql

6. Membuat SDK klien Dart

Perintah ini menggunakan definisi GraphQL Anda untuk membuat library Dart khusus untuk database Anda. Anda menggunakan library ini di aplikasi klien untuk melakukan semua operasi database.

Anda dapat membuat library untuk beberapa platform, termasuk Kotlin untuk Android, Swift untuk iOS, dan JavaScript untuk web, dengan menambahkan definisi ke connector.yaml.

firebase dataconnect:sdk:generate
SDK Dart yang dibuat otomatis (kutipan)
class ExampleConnector {
  ListMoviesVariablesBuilder listMovies() {
    return ListMoviesVariablesBuilder(dataConnect);
  }

  // ...
}

7. Menyiapkan aplikasi Flutter

Jalankan perintah ini untuk menyiapkan aplikasi Flutter agar menggunakan project Firebase Anda.

Saat diminta oleh perintah flutterfire, pilih project Firebase yang Anda buat sebelumnya, lalu pilih platform yang ingin Anda targetkan.

cd flutter_app
flutter pub add firebase_core firebase_data_connect
flutterfire configure

8. Menulis klien Flutter contoh

Ganti konten flutter_app/lib/main.dart dengan aplikasi Flutter sederhana ini.

Perhatikan bahwa aplikasi menyelesaikan akses database yang diperlukan menggunakan fungsi dari SDK yang dihasilkan.

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. Coba aplikasinya

Mulai server pengembangan untuk melihat cara kerja aplikasi contoh.

flutter run

Langkah berikutnya

Mencoba ekstensi Visual Studio Code

Saat mengembangkan dengan Data Connect, sebaiknya gunakan ekstensi Visual Studio Code. Meskipun Anda tidak menggunakan Visual Studio Code sebagai lingkungan pengembangan utama, ekstensi ini menyediakan beberapa fitur yang membuat pengembangan skema dan operasi menjadi lebih mudah:

  • Server bahasa GraphQL, yang menyediakan pemeriksaan sintaksis dan saran pelengkapan otomatis khusus untuk Data Connect
  • Tombol CodeLens sebaris dengan kode yang memungkinkan Anda membaca dan menulis data dari file definisi skema serta menjalankan kueri dan mutasi dari definisi operasi.
  • Secara otomatis menjaga SDK yang dihasilkan tetap disinkronkan dengan definisi GraphQL Anda.
  • Penyiapan emulator lokal yang disederhanakan.
  • Deployment yang disederhanakan ke produksi.

Menggunakan emulator Data Connect untuk pengembangan lokal

Meskipun tutorial ini menunjukkan cara men-deploy skema dan operasi Data Connect langsung ke produksi, Anda mungkin tidak ingin membuat perubahan pada database produksi saat Anda sedang mengembangkan aplikasi secara aktif. Sebagai gantinya, siapkan emulator Data Connect dan lakukan pekerjaan pengembangan Anda di emulator tersebut, bukan di produksi. Emulator menyiapkan instance PGlite lokal yang berperilaku serupa dengan instance Postgres aktif di CloudSQL.

Pelajari cara menulis skema dan operasi untuk aplikasi Anda

Saat mengembangkan aplikasi dengan Data Connect, desain skema dan operasi adalah salah satu tugas pengembangan pertama dan terpenting yang akan Anda selesaikan.

  • Gemini di Firebase console adalah alat AI yang dapat membuat skema Data Connect dari deskripsi bahasa alami aplikasi Anda. Alat ini dapat membantu Anda memulai dengan sangat cepat, terutama jika Anda belum pernah menggunakan database relasional sebelumnya.
  • Atau, Anda dapat menulis skema database, kueri, dan mutasi secara langsung menggunakan GraphQL. Mulai dengan halaman Skema Data Connect Desain dan lanjutkan ke halaman lanjutan untuk mempelajari cara menulis operasi.