ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะได้สร้างและติดตั้งใช้งานฐานข้อมูลตัวอย่างขนาดเล็ก รวมถึงเข้าถึงฐานข้อมูลดังกล่าวจากแอป iOS
ข้อกำหนดเบื้องต้น
คุณต้องมีสิ่งต่อไปนี้จึงจะทำตามการเริ่มต้นอย่างรวดเร็วนี้ได้
- สภาพแวดล้อมที่มีเครื่องมือต่อไปนี้ติดตั้งอยู่
- Xcode เวอร์ชันล่าสุด
- Firebase CLI หากติดตั้ง NPM ไว้ ให้เรียกใช้คำสั่งต่อไปนี้
หรือดูเอกสารประกอบสำหรับวิธีการติดตั้งnpm install -g firebase-tools@latest
- บัญชี Google
บทแนะนำ
| บทแนะนำ | |
|---|---|
1. สร้างโปรเจ็กต์ Xcode ใหม่สร้างโปรเจ็กต์ใหม่ด้วยเทมเพลตแอป ใน Xcode |
ตั้งชื่อโปรเจ็กต์ว่า Quickstart โดยใช้รหัสชุดซอฟต์แวร์ com.example.Quickstart
สร้างโปรเจ็กต์ในโฟลเดอร์ว่าง เช่น |
2. เริ่มต้นโปรเจ็กต์ Firebaseเปลี่ยนเป็นไดเรกทอรีโปรเจ็กต์ของโปรเจ็กต์ Xcode แล้วเริ่มต้นโปรเจ็กต์ Firebase ในไดเรกทอรีดังกล่าว |
cd ~/qs-iosfirebase login --reauthfirebase init dataconnectเมื่อได้รับข้อความแจ้ง ให้เลือกตัวเลือกต่อไปนี้
ยอมรับค่าเริ่มต้นสำหรับข้อความแจ้งอื่นๆ ทั้งหมด จากนั้นลงทะเบียนแอป 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" แล้วเลือกไฟล์
|
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 } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
4. ติดตั้งใช้งานสคีมาและฟังก์ชันการทำงานเมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงสคีมา คำค้นหา หรือการเปลี่ยนแปลงฐานข้อมูล คุณต้อง ติดตั้งใช้งานเพื่อให้การเปลี่ยนแปลงมีผลกับฐานข้อมูล |
|
5. ป้อนข้อมูลตัวอย่างลงในฐานข้อมูลข้อมูลตัวอย่างนี้จะช่วยให้คุณมีข้อมูลให้ดูเมื่อทดสอบแอปตัวอย่าง โปรดทราบ ว่าในขั้นตอนนี้คุณกำลังเรียกใช้ GraphQL ที่กำหนดเอง ซึ่งระบบอนุญาตให้ทำได้สำหรับ งานของผู้ดูแลระบบ |
|
6. สร้าง iOS Client SDKคำสั่งนี้ใช้คำจำกัดความของ GraphQL เพื่อสร้าง iOS Client SDK สำหรับฐานข้อมูลของคุณโดยเฉพาะ คุณใช้ไลบรารีนี้ ในแอปไคลเอ็นต์เพื่อดำเนินการฐานข้อมูลทั้งหมด คุณสามารถสร้างไลบรารีสำหรับหลายแพลตฟอร์ม รวมถึง
Kotlin สำหรับ Android, JavaScript สำหรับเว็บ และ Flutter ได้โดยเพิ่มคำจำกัดความลงใน
|
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 แล้วเลือกโฟลเดอร์ที่มีไลบรารีที่สร้างขึ้น
|
8. เขียน iOS Client ตัวอย่างแทนที่เนื้อหาของ
โปรดสังเกตว่าแอปจะเข้าถึงฐานข้อมูลที่จำเป็นโดยใช้ฟังก์ชันจาก 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