Flutter kullanarak Firebase Data Connect'i kullanmaya başlama

Bu hızlı başlangıç kılavuzunda, küçük bir örnek veritabanı oluşturup dağıtacak ve bu veritabanına Flutter ön ucundan erişeceksiniz.

Ön koşullar

Bu hızlı başlangıç kılavuzunu tamamlamak için aşağıdakilere ihtiyacınız vardır:

  • Aşağıdaki araçların yüklü olduğu bir ortam:
  • Google Hesabı

Eğitim

Eğitim

1. Projenizi ilk kullanıma hazırlayın

Yeni bir dizin oluşturun ve içinde bir Firebase projesi başlatın. İstendiğinde aşağıdaki seçenekleri belirleyin:

  • Yeni bir Firebase projesi oluşturun.
  • Gemini ile şema oluşturmayın (bu eğitimde, önceden oluşturulmuş bir örnek şema kullanacaksınız).
  • Yeni bir Cloud SQL örneği oluşturun.
  • Flutter şablonu oluşturun.
mkdir myproj ; cd myproj
firebase login --reauth
firebase init dataconnect

2. Örnek GraphQL tanımlarını inceleyin

Data Connect içinde, tüm veritabanı şemalarınızı ve işlemlerinizi GraphQL kullanarak tanımlarsınız. Projenizi başlattığınızda Firebase CLI, başlamanıza yardımcı olmak için bazı örnek tanımlar oluşturdu.

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

3. Şemalarınızı ve işlemlerinizi dağıtma

Veritabanı şemalarınızda, sorgularınızda veya mutasyonlarınızda değişiklik yaptığınızda, değişikliklerinizin veritabanında geçerli olması için bunları dağıtmanız gerekir.

firebase deploy --only dataconnect

4. Veritabanını örnek verilerle doldurma

Bu başlangıç verileri, örnek uygulamayı test ederken inceleyebileceğiniz bir şey sunar. Bu adımda, yönetim görevleri için izin verilen rastgele GraphQL'i yürüttüğünüzü unutmayın.

firebase dataconnect:execute dataconnect/seed_data.gql

5. Dart istemci SDK'sı oluşturma

Bu komut, GraphQL tanımlarınızı kullanarak özellikle veritabanınız için bir Dart kitaplığı oluşturur. Tüm veritabanı işlemlerini gerçekleştirmek için bu kitaplığı istemci uygulamanızda kullanırsınız.

connector.yaml tanım ekleyerek Android için Kotlin, iOS için Swift ve web için JavaScript dahil olmak üzere birden fazla platformda kitaplık oluşturabilirsiniz.

firebase dataconnect:sdk:generate
Otomatik olarak oluşturulan Dart SDK'sı (alıntı)
class ExampleConnector {
  ListMoviesVariablesBuilder listMovies() {
    return ListMoviesVariablesBuilder(dataConnect);
  }

  // ...
}

6. Flutter uygulaması oluşturma

Flutter uygulamasını Firebase projenizi kullanacak şekilde ayarlamak için bu komutları çalıştırın.

flutterfire komutu tarafından istendiğinde, daha önce oluşturduğunuz Firebase projesini seçin ve hedeflemek istediğiniz platformları belirleyin.

cd flutter_app
flutter pub add firebase_core firebase_data_connect
flutterfire configure

7. Örnek bir Flutter istemcisi yazma

flutter_app/lib/main.dart içeriğini bu basit Flutter uygulamasıyla değiştirin.

Uygulamanın, oluşturulan SDK'daki bir işlevi kullanarak gerekli veritabanı erişimini tamamladığını unutmayın.

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());
}

8. Uygulamayı deneyin

Örnek uygulamayı çalışırken görmek için geliştirme sunucusunu başlatın.

flutter run

Sonraki adımlar

Visual Studio Code uzantısını deneyin

Data Connect ile geliştirme yaparken Visual Studio Code uzantısını kullanmanızı önemle tavsiye ederiz. Visual Studio Code'u birincil geliştirme ortamınız olarak kullanmasanız bile uzantı, şema ve işlem geliştirmeyi daha kolay hale getiren çeşitli özellikler sunar:

  • Data Connect'ya özel söz dizimi denetimi ve otomatik tamamlama önerileri sağlayan bir GraphQL dil sunucusu
  • Şema tanımı dosyalarınızdan veri okumanıza ve yazmanıza, işlem tanımlarınızdan sorgu ve mutasyon yürütmenize olanak tanıyan, kodunuzla aynı satırda bulunan CodeLens düğmeleri.
  • Oluşturulan SDK'larınızı GraphQL tanımlarınızla otomatik olarak senkronize tutun.
  • Basitleştirilmiş yerel emülatör kurulumu.
  • Üretim ortamına basitleştirilmiş dağıtım.

Yerel geliştirme için Data Connect emülatörünü kullanma

Bu eğitimde Data Connect şemalarının ve işlemlerinin doğrudan üretime nasıl dağıtılacağı gösterilse de uygulamanızı aktif olarak geliştirirken üretim veritabanınızda değişiklik yapmak istemeyebilirsiniz. Bunun yerine, Data Connect emülatörünü ayarlayın ve geliştirme çalışmalarınızı üretim yerine bu emülatörde yapın. Emülatör, Cloud SQL'deki canlı bir PostgreSQL örneğine benzer şekilde davranan yerel bir PGLite örneği oluşturur.

Uygulamanız için şemaları ve işlemleri nasıl yazacağınızı öğrenin

Data Connect ile uygulama geliştirirken şemalarınızın ve işlemlerinizin tasarımı, tamamlayacağınız ilk ve en önemli geliştirme görevlerinden biridir.

  • Firebase konsolunda Gemini, uygulamanızın doğal dil açıklamasına dayalı olarak Data Connect şemaları oluşturabilen bir yapay zeka aracıdır. Bu araç, özellikle daha önce ilişkisel veritabanlarıyla çalışmadıysanız çok hızlı bir şekilde başlamanıza yardımcı olabilir.
  • Alternatif olarak, GraphQL kullanarak doğrudan veritabanı şemaları, sorgular ve mutasyonlar yazabilirsiniz. Tasarım Data Connect şemaları sayfasından başlayın ve yazma işlemlerini nasıl yapacağınızı öğrenmek için sonraki sayfalara geçin.