เริ่มต้นใช้งาน Firebase SQL Connect ใน iOS

ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะได้สร้างและติดตั้งใช้งานฐานข้อมูลตัวอย่างขนาดเล็ก รวมถึงเข้าถึงฐานข้อมูลดังกล่าวจากแอป iOS

ข้อกำหนดเบื้องต้น

คุณต้องมีสิ่งต่อไปนี้จึงจะทำตามการเริ่มต้นอย่างรวดเร็วนี้ได้

  • สภาพแวดล้อมที่มีเครื่องมือต่อไปนี้ติดตั้งอยู่
    • Xcode เวอร์ชันล่าสุด
    • Firebase CLI หากติดตั้ง NPM ไว้ ให้เรียกใช้คำสั่งต่อไปนี้
      npm install -g firebase-tools@latest
      หรือดูเอกสารประกอบสำหรับวิธีการติดตั้ง
  • บัญชี Google

บทแนะนำ

บทแนะนำ

1. สร้างโปรเจ็กต์ Xcode ใหม่

สร้างโปรเจ็กต์ใหม่ด้วยเทมเพลตแอป ใน Xcode

ตั้งชื่อโปรเจ็กต์ว่า 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

เมื่อได้รับข้อความแจ้งให้ระบุรหัส App Store ให้กด Enter เพื่อข้ามขั้นตอนนี้

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

ใน Xcode ให้เลือก File > Add Files to "Quickstart" แล้วเลือกไฟล์ GoogleService-Info.plist

3. ตรวจสอบคำจำกัดความของ GraphQL ตัวอย่าง

ใน SQL Connect คุณจะกำหนดสคีมาและฟังก์ชันการทำงานทั้งหมดของฐานข้อมูล โดยใช้ GraphQL เมื่อคุณเริ่มต้นโปรเจ็กต์ Firebase CLI จะสร้างคำจำกัดความตัวอย่างบางรายการเพื่อให้คุณเริ่มต้นใช้งานได้

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. ติดตั้งใช้งานสคีมาและฟังก์ชันการทำงาน

เมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงสคีมา คำค้นหา หรือการเปลี่ยนแปลงฐานข้อมูล คุณต้อง ติดตั้งใช้งานเพื่อให้การเปลี่ยนแปลงมีผลกับฐานข้อมูล

firebase deploy --only dataconnect

5. ป้อนข้อมูลตัวอย่างลงในฐานข้อมูล

ข้อมูลตัวอย่างนี้จะช่วยให้คุณมีข้อมูลให้ดูเมื่อทดสอบแอปตัวอย่าง โปรดทราบ ว่าในขั้นตอนนี้คุณกำลังเรียกใช้ GraphQL ที่กำหนดเอง ซึ่งระบบอนุญาตให้ทำได้สำหรับ งานของผู้ดูแลระบบ

firebase dataconnect:execute dataconnect/seed_data.gql

6. สร้าง iOS Client SDK

คำสั่งนี้ใช้คำจำกัดความของ GraphQL เพื่อสร้าง iOS Client SDK สำหรับฐานข้อมูลของคุณโดยเฉพาะ คุณใช้ไลบรารีนี้ ในแอปไคลเอ็นต์เพื่อดำเนินการฐานข้อมูลทั้งหมด

คุณสามารถสร้างไลบรารีสำหรับหลายแพลตฟอร์ม รวมถึง Kotlin สำหรับ Android, JavaScript สำหรับเว็บ และ Flutter ได้โดยเพิ่มคำจำกัดความลงใน connector.yaml

firebase dataconnect:sdk:generate
iOS SDK ที่สร้างขึ้นโดยอัตโนมัติ (excerpt)
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. เพิ่มทรัพยากร Dependency ของ Firebase ลงในโปรเจ็กต์ Xcode

เพิ่มไลบรารีที่สร้างขึ้นลงในโปรเจ็กต์โดยใช้ Swift Package Manager เมื่อคุณเพิ่ม ไลบรารีที่สร้างขึ้น ระบบจะรวมไลบรารีหลักของ Firebase และ ไลบรารี Firebase SQL Connect โดยอัตโนมัติ

ในแถบการนำทางของ Xcode ให้เลือก File > Add Package Dependencies > Add Local แล้วเลือกโฟลเดอร์ที่มีไลบรารีที่สร้างขึ้น FirebaseDataConnectGenerated/DataConnectGenerated/ โฟลเดอร์ที่ถูกต้อง จะมีไฟล์ชื่อ Package.swift

8. เขียน iOS Client ตัวอย่าง

แทนที่เนื้อหาของ 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