iOS'te Firebase SQL 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 bir iOS uygulamasından 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:
    • Xcode'un son sürümlerinden biri.
    • Firebase CLI. NPM yüklüyse şu komutu çalıştırın:
      npm install -g firebase-tools@latest
      Aksi takdirde, yükleme talimatları için dokümanlara bakın.
  • Google Hesabı

Eğitim

Eğitim

1. Yeni bir Xcode projesi oluşturma

Xcode'da Uygulama şablonunu kullanarak yeni bir proje oluşturun.

Paket kimliği com.example.Quickstart olan projeye Quickstart adını verin.

Xcode yeni proje iletişim kutusu

Projeyi ~/qs-ios gibi boş bir klasörde oluşturun. Xcode, proje dosyalarınızı içeren ~/qs-ios/Quickstart adlı bir klasör oluşturur.

2. Firebase projesi başlatma

Xcode projenizin proje dizinine gidin ve bu dizinde bir Firebase projesi başlatın.

cd ~/qs-ios
firebase login --reauth
firebase init dataconnect

İ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).
  • Ücretsiz deneme Cloud SQL örneği ve veritabanı sağlayın.

Diğer tüm istemler için varsayılan değerleri kabul edin.

Ardından, iOS uygulamasını Firebase projenize kaydedin.

firebase apps:create --bundle-id com.example.Quickstart ios ios-quickstart

App Store kimliği belirtmeniz istendiğinde bu adımı atlamak için Enter tuşuna basın.

firebase apps:sdkconfig ios -o Quickstart/GoogleService-Info.plist

Xcode'da File > Add Files to "Quickstart"'ı (Dosya > "Quickstart"a Dosya Ekle) seçin ve GoogleService-Info.plist dosyasını belirleyin.

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

SQL 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 (excerpt)
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
  }
}

4. Ş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

5. 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

6. iOS istemci SDK'sı oluşturma

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

connector.yaml'ya tanımlar ekleyerek Android için Kotlin, web için JavaScript ve Flutter dahil olmak üzere birden fazla platform için kitaplıklar oluşturabilirsiniz.

firebase dataconnect:sdk:generate
Otomatik olarak oluşturulan iOS SDK'sı (alıntı)
public class ListMoviesQuery {

  // ...

  @MainActor
  public func execute(
    fetchPolicy: QueryFetchPolicy = .preferCache,
  ) async throws -> OperationResult<ListMoviesQuery.Data> {
    var variables = ListMoviesQuery.Variables()

    let ref = dataConnect.query(
      name: "ListMovies", variables: variables, resultsDataType: ListMoviesQuery.Data.self,
      publisher: .observableMacro)

    let refCast = ref as! QueryRefObservation<ListMoviesQuery.Data, ListMoviesQuery.Variables>
    return try await refCast.execute(fetchPolicy: fetchPolicy)
  }
}

7. Xcode projenize Firebase bağımlılıkları ekleme

Oluşturulan kitaplığı Swift Package Manager'ı kullanarak projenize ekleyin. Oluşturulan kitaplığı eklediğinizde, Firebase çekirdek kitaplıkları ve Firebase SQL Connect kitaplığı geçişli olarak dahil edilir.

Xcode gezinme çubuğunda File > Add Package Dependencies > Add Local'ı (Dosya > Paket Bağımlılıkları Ekle > Yerel Ekle) seçin ve oluşturulan kitaplığı içeren klasörü belirleyin, FirebaseDataConnectGenerated/DataConnectGenerated/. Doğru klasörde Package.swift adlı bir dosya bulunur.

8. Örnek bir iOS istemcisi yazma

Quickstart/QuickstartApp.swift içeriğini bu basit iOS uygulamasıyla değiştirin.

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

import SwiftUI
import FirebaseCore
import FirebaseDataConnect
import DataConnectGenerated

@main
struct QuickstartApp: App {
  init() {
    FirebaseApp.configure()
  }
  var body: some Scene {
    WindowGroup {
      ListMovieView()
    }
  }
}

struct ListMovieView: View {
  @State private var moviesData: ListMoviesQuery.Data?

  var body: some View {
    VStack {
      ForEach(moviesData?.movies ?? []) { movie in
        Text(movie.title)
      }
    }
    .task {
      let result = try? await DataConnect.exampleConnector
          .listMoviesQuery.execute()
      self.moviesData = result?.data
    }
  }
}

9. Uygulamayı deneyin

Çalışırken görmek için Xcode'dan örnek uygulamayı çalıştırın.

Sonraki adımlar

SQL Connect VS Code uzantısını deneyin

SQL Connect ile geliştirme yaparken SQL Connect VS 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:

  • SQL 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, ayrıca 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 SQL Connect emülatörünü kullanma

Bu eğitimde SQL Connect şemalarının ve işlemlerinin doğrudan canlı sürüme nasıl dağıtılacağı gösterilse de uygulamanızı aktif olarak geliştirirken canlı veritabanınızda değişiklik yapmak istemeyebilirsiniz. Bunun yerine SQL Connect emülatörünü ayarlayın ve geliştirme çalışmalarınızı canlı sürüm yerine emülatör üzerinde yapın. Emülatör, Cloud SQL üzerinde 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

SQL 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 konsolundaki Gemini, uygulamanızın doğal dildeki açıklamasından SQL 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, veritabanı şemalarını, sorguları ve mutasyonları doğrudan GraphQL kullanarak yazabilirsiniz. SQL Connect şemaları tasarlama bölümündeki yönergelerle başlayın ve ardından yazma işlemlerini öğrenmek için sonraki sayfalara geçin.

SQL Connect uygulamasından anlık güncellemeleri nasıl alacağınızı öğrenin.

SQL Connect'yı kullanarak değişen verilere anında tepki veren istemci uygulamaları yazabilirsiniz. SQL Connect'dan anlık güncellemeler alma başlıklı makaleyi inceleyin.