شروع کار با Firebase SQL Connect در iOS

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

پیش‌نیازها

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

  • محیطی با ابزارهای نصب شده زیر:
    • نسخه جدیدی از Xcode .
    • رابط خط فرمان فایربیس . اگر NPM را نصب کرده‌اید، دستور زیر را اجرا کنید:
      npm install -g firebase-tools@latest
      در غیر این صورت، برای دستورالعمل‌های نصب به مستندات مراجعه کنید.
  • یک حساب گوگل.

آموزش

آموزش

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

در Xcode، یک پروژه جدید با الگوی App ایجاد کنید.

نام پروژه را Quickstart با شناسه بسته com.example.Quickstart بگذارید.

پنجره‌ی گفتگوی پروژه‌ی جدید Xcode

پروژه را در یک پوشه خالی، مانند ~/qs-ios ایجاد کنید. Xcode پوشه‌ای به ~/qs-ios/Quickstart ایجاد می‌کند که حاوی فایل‌های پروژه شما است.

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

به دایرکتوری پروژه Xcode خود بروید و یک پروژه Firebase را در آن مقداردهی اولیه کنید.

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

وقتی از شما خواسته شد، گزینه‌های زیر را انتخاب کنید:

  • یک پروژه جدید Firebase ایجاد کنید.
  • با Gemini طرحواره ایجاد نکنید (در این آموزش، از یک طرحواره نمونه از پیش ساخته شده استفاده خواهید کرد).
  • ارائه یک نمونه و پایگاه داده Cloud SQL آزمایشی رایگان.

مقادیر پیش‌فرض را برای سایر درخواست‌ها بپذیرید.

در مرحله بعد، برنامه iOS را در پروژه Firebase خود ثبت کنید.

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

وقتی از شما خواسته شد شناسه فروشگاه برنامه (App Store ID) را مشخص کنید، برای رد شدن از این مرحله، Enter را فشار دهید.

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

در Xcode، مسیر File > Add Files to "Quickstart" را انتخاب کنید و فایل GoogleService-Info.plist را انتخاب کنید.

۳. مثال‌های تعاریف GraphQL را مرور کنید

در SQL 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 کلاینت iOS ایجاد کنید

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

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

firebase dataconnect:sdk:generate
کیت توسعه نرم‌افزار iOS که به صورت خودکار تولید شده است (گزیده)
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)
  }
}

۷. وابستگی‌های Firebase را به پروژه Xcode خود اضافه کنید

کتابخانه تولید شده را با استفاده از Swift Package Manager به پروژه خود اضافه کنید. وقتی کتابخانه تولید شده را اضافه می‌کنید، به صورت انتقالی کتابخانه‌های اصلی Firebase و کتابخانه Firebase SQL Connect نیز شامل می‌شود.

در نوار ناوبری Xcode، مسیر File > Add Package Dependencies > Add Local را دنبال کنید و پوشه‌ای که کتابخانه تولید شده در آن قرار دارد، یعنی FirebaseDataConnectGenerated/DataConnectGenerated/ را انتخاب کنید. پوشه صحیح حاوی فایلی به نام Package.swift خواهد بود.

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

محتویات Quickstart/QuickstartApp.swift را با این برنامه ساده iOS جایگزین کنید.

توجه داشته باشید که برنامه با استفاده از تابعی از SDK تولید شده، دسترسی لازم به پایگاه داده را تکمیل می‌کند.

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
    }
  }
}

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

برای مشاهده‌ی عملکرد آن، برنامه‌ی نمونه را از Xcode اجرا کنید.

مراحل بعدی

افزونه SQL Connect VS Code را امتحان کنید

هنگام توسعه با SQL Connect ، اکیداً توصیه می‌کنیم از افزونه SQL Connect VS Code استفاده کنید. حتی اگر از Visual Studio Code به عنوان محیط توسعه اصلی خود استفاده نمی‌کنید، این افزونه چندین ویژگی ارائه می‌دهد که توسعه طرحواره و عملیات را راحت‌تر می‌کند:

  • یک سرور زبان GraphQL، که بررسی سینتکس و پیشنهادهای تکمیل خودکار مختص SQL Connect را ارائه می‌دهد.
  • دکمه‌های CodeLens مطابق با کد شما که به شما امکان می‌دهند داده‌ها را از فایل‌های تعریف طرحواره خود بخوانید و بنویسید و پرس‌وجوها و جهش‌ها را از تعاریف عملیات خود اجرا کنید.
  • SDK های تولید شده خود را به طور خودکار با تعاریف GraphQL خود همگام سازی کنید.
  • راه‌اندازی ساده‌شده‌ی شبیه‌ساز محلی.
  • استقرار ساده‌شده به محیط عملیاتی.

استفاده از شبیه‌ساز SQL Connect برای توسعه محلی

اگرچه این آموزش به شما نشان داد که چگونه طرح‌ها و عملیات SQL Connect را مستقیماً در محیط عملیاتی مستقر کنید، اما احتمالاً نمی‌خواهید در حین توسعه فعال برنامه خود، تغییراتی در پایگاه داده محیط عملیاتی خود ایجاد کنید. در عوض، شبیه‌ساز SQL Connect را راه‌اندازی کنید و کارهای توسعه خود را به جای محیط عملیاتی، در محیط عملیاتی انجام دهید. شبیه‌ساز یک نمونه محلی PGlite راه‌اندازی می‌کند که مشابه یک نمونه زنده PostgreSQL در Cloud SQL رفتار می‌کند.

یاد بگیرید چگونه طرحواره‌ها و عملیات‌ها را برای برنامه خود بنویسید

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

  • Gemini در کنسول Firebase یک ابزار هوش مصنوعی است که می‌تواند طرحواره‌های SQL Connect را از توضیحات زبان طبیعی برنامه شما تولید کند. این ابزار می‌تواند خیلی سریع شما را شروع کند، به خصوص اگر قبلاً هرگز با پایگاه‌های داده رابطه‌ای کار نکرده‌اید.
  • از طرف دیگر، می‌توانید طرحواره‌ها، کوئری‌ها و جهش‌های پایگاه داده را مستقیماً با استفاده از GraphQL بنویسید. با راهنمایی‌های موجود در طرحواره‌های Design SQL Connect شروع کنید و سپس برای یادگیری نحوه نوشتن عملیات، به صفحات بعدی بروید.

یاد بگیرید چگونه از SQL Connect به‌روزرسانی‌های بلادرنگ دریافت کنید

شما می‌توانید از SQL Connect برای نوشتن برنامه‌های کلاینتی استفاده کنید که به صورت بلادرنگ به داده‌های در حال تغییر واکنش نشان می‌دهند. به بخش «دریافت به‌روزرسانی‌های بلادرنگ از SQL Connect مراجعه کنید.