איך מתחילים להשתמש ב-Firebase SQL Connect ב-iOS

במדריך למתחילים הזה תלמדו איך ליצור ולפרוס מסד נתונים קטן לדוגמה, ואיך לגשת אליו מאפליקציית iOS.

דרישות מוקדמות

כדי להשלים את המדריך למתחילים הזה, תצטרכו:

  • סביבה שמותקנים בה הכלים הבאים:
    • גרסה עדכנית של Xcode.
    • Firebase CLI. אם NPM מותקן, מריצים את הפקודה:
      npm install -g firebase-tools@latest
      אחרת, אפשר לעיין במסמכים כדי לקבל הוראות התקנה.
  • חשבון Google.

מדריך

מדריך

1. יצירת פרויקט חדש ב-Xcode

ב-Xcode, יוצרים פרויקט חדש באמצעות התבנית App.

נותנים לפרויקט את השם Quickstart עם מזהה החבילה com.example.Quickstart.

תיבת הדו-שיח ליצירת פרויקט חדש ב-Xcode

יוצרים את הפרויקט בתיקייה ריקה, כמו ~/qs-ios. ‫Xcode ייצור תיקייה בשם ~/qs-ios/Quickstart שמכילה את קובצי הפרויקט.

2. הפעלת פרויקט 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

כשמוצגת בקשה לציין מזהה של חנות אפליקציות, מקישים על Enter כדי לדלג על השלב.

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

ב-Xcode, בוחרים באפשרות File > Add Files to "Quickstart"‎ (קובץ > הוספת קבצים אל Quickstart) ובוחרים בקובץ GoogleService-Info.plist.

3. בדיקת ההגדרות לדוגמה של GraphQL

ב-SQL Connect, מגדירים את כל הסכימות והפעולות של מסד הנתונים באמצעות GraphQL. כשאתם מאתחלים את הפרויקט, ה-CLI של Firebase יוצר כמה הגדרות לדוגמה כדי לעזור לכם להתחיל.

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

4. פריסת הסכימות והפעולות

בכל פעם שמבצעים שינויים בסכימות של מסדי הנתונים, בשאילתות או במוטציות, צריך לפרוס אותם כדי שהשינויים יחולו על מסד הנתונים.

firebase deploy --only dataconnect

5. הוספת נתונים לדוגמה למסד הנתונים

נתוני הבסיס האלה יאפשרו לכם לראות משהו כשבודקים את האפליקציה לדוגמה. הערה: בשלב הזה אתם מריצים GraphQL שרירותי, וזה מותר למשימות ניהול.

firebase dataconnect:execute dataconnect/seed_data.gql

6. יצירה של SDK ללקוח iOS

הפקודה הזו משתמשת בהגדרות GraphQL כדי ליצור SDK של לקוח iOS במיוחד עבור מסד הנתונים שלכם. משתמשים בספרייה הזו באפליקציית הלקוח כדי לבצע את כל פעולות מסד הנתונים.

אפשר ליצור ספריות למספר פלטפורמות, כולל Kotlin ל-Android,‏ JavaScript לאינטרנט ו-Flutter, על ידי הוספת הגדרות ל-connector.yaml.

firebase dataconnect:sdk:generate
iOS SDK שנוצר אוטומטית (קטע)
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. הוספת תלויות של Firebase לפרויקט Xcode

מוסיפים את הספרייה שנוצרה לפרויקט באמצעות Swift Package Manager. כשמוסיפים את הספרייה שנוצרה, היא תכלול באופן טרנזיטיבי את ספריות הליבה של Firebase ואת הספרייה Firebase SQL Connect.

בסרגל הניווט של Xcode, בוחרים באפשרות File > Add Package Dependencies > Add Local (קובץ > הוספת תלות בחבילה > הוספה מקומית) ובוחרים את התיקייה שמכילה את הספרייה שנוצרה, FirebaseDataConnectGenerated/DataConnectGenerated/. התיקייה הנכונה תכיל קובץ בשם Package.swift.

8. כתיבת לקוח לדוגמה ב-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
    }
  }
}

9. לניסיון האפליקציה

מריצים את האפליקציה לדוגמה מ-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 הוא כלי מבוסס-AI שיכול ליצור SQL Connect סכימות מתיאור של האפליקציה בשפה טבעית. הכלי הזה יכול לעזור לכם להתחיל לעבוד במהירות, במיוחד אם אף פעם לא עבדתם עם מסדי נתונים רלציוניים.
  • לחלופין, אפשר לכתוב סכימות של מסדי נתונים, שאילתות ומוטציות ישירות באמצעות GraphQL. כדאי להתחיל עם ההנחיות במאמר בנושא תכנון סכימות של SQL Connect, ואז להמשיך לדפים הבאים כדי ללמוד איך לכתוב פעולות.

SQL Connect

אתם יכולים להשתמש ב-SQL Connect כדי לכתוב אפליקציות לקוח שמגיבות לשינויים בנתונים בזמן אמת. אפשר לעיין במאמר קבלת עדכונים בזמן אמת מ-SQL Connect.