ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะได้สร้างและติดตั้งใช้งานฐานข้อมูลตัวอย่างขนาดเล็ก รวมถึงเข้าถึงฐานข้อมูลจากแอป Android
ข้อกำหนดเบื้องต้น
คุณต้องมีสิ่งต่อไปนี้เพื่อทําการเริ่มต้นอย่างรวดเร็วนี้ให้เสร็จสมบูรณ์
- สภาพแวดล้อมที่มีการติดตั้งเครื่องมือต่อไปนี้
- Android Studio เวอร์ชันล่าสุด
- Firebase CLI หากติดตั้ง NPM ไว้ ให้เรียกใช้คำสั่งต่อไปนี้
หรือดูวิธีการติดตั้งในเอกสารประกอบnpm install -g firebase-tools@latest
- บัญชี Google
บทแนะนำ
| บทแนะนำ | |
|---|---|
1. สร้างโปรเจ็กต์ Android Studio ใหม่ใน Android Studio ให้สร้างโปรเจ็กต์ใหม่ด้วยเทมเพลต Empty Activity ตั้งชื่อโปรเจ็กต์ว่า Quickstart App โดยใช้ชื่อแพ็กเกจ com.example.quickstartapp |
|
2. เพิ่ม Firebase ไปยังโปรเจ็กต์ Android Studioเพิ่มทรัพยากร Dependency ของ Firebase และปลั๊กอินการซีเรียลไลซ์ Kotlin ลงในไฟล์ |
QuickstartApp/build.gradle.kts
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.compose) apply false // Add this line. id("com.google.gms.google-services") version "4.5.0" apply false } plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) // Add these lines. kotlin("plugin.serialization") version libs.versions.kotlin id("com.google.gms.google-services") } // ... dependencies { // ... // Add these lines. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.11.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.11.0") implementation(platform("com.google.firebase:firebase-bom:34.15.0")) implementation("com.google.firebase:firebase-dataconnect") } |
3. เริ่มต้นโปรเจ็กต์ Firebaseเปลี่ยนไปที่ไดเรกทอรีโปรเจ็กต์ Android Studio แล้วเริ่มต้นโปรเจ็กต์ Firebase ใน ไดเรกทอรีนั้น |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectเมื่อได้รับแจ้ง ให้เลือกตัวเลือกต่อไปนี้
ยอมรับค่าเริ่มต้นสำหรับพรอมต์อื่นๆ ทั้งหมด จากนั้นลงทะเบียนแอป Android ในโปรเจ็กต์ Firebase firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. ตรวจสอบตัวอย่างคำจำกัดความ 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 } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
5. ติดตั้งใช้งานสคีมาและการดำเนินการเมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงสคีมา ฐานข้อมูล คำค้นหา หรือการเปลี่ยนแปลง คุณจะต้อง นําไปใช้เพื่อให้การเปลี่ยนแปลงมีผลกับฐานข้อมูล |
|
6. เริ่มต้นฐานข้อมูลด้วยข้อมูลตัวอย่างข้อมูลเริ่มต้นนี้จะช่วยให้คุณมีข้อมูลที่จะดูเมื่อทดสอบแอปตัวอย่าง โปรดทราบว่าในขั้นตอนนี้ คุณกำลังเรียกใช้ GraphQL ที่กำหนดเอง ซึ่งอนุญาตให้ใช้สำหรับงานด้านการดูแลระบบ |
|
7. สร้าง Android Client SDKคำสั่งนี้ใช้คำจำกัดความ GraphQL เพื่อสร้าง Android Client SDK สำหรับฐานข้อมูลของคุณโดยเฉพาะ คุณใช้ไลบรารีนี้ ในแอปไคลเอ็นต์เพื่อดำเนินการกับฐานข้อมูลทั้งหมด คุณสร้างไลบรารีสำหรับหลายแพลตฟอร์มได้ ซึ่งรวมถึง
Swift สำหรับ iOS, JavaScript สำหรับเว็บ และ Flutter โดยเพิ่มคำจำกัดความลงใน
|
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. เขียนไคลเอ็นต์ Android ตัวอย่างแทนที่เนื้อหาของ
โปรดสังเกตว่าแอปจะเข้าถึงฐานข้อมูลที่จำเป็นโดยใช้ฟังก์ชันจาก SDK ที่สร้างขึ้น |
package com.example.quickstartapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import com.example.quickstartapp.ui.theme.QuickstartAppTheme import com.google.firebase.dataconnect.generated.ExampleConnector import com.google.firebase.dataconnect.generated.ListMoviesQuery import com.google.firebase.dataconnect.generated.execute import com.google.firebase.dataconnect.generated.instance class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { QuickstartAppTheme() { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> var movies by remember { mutableStateOf(emptyList<ListMoviesQuery.Data.MoviesItem>()) } LaunchedEffect(Unit) { // Queries need to be executed in a coroutine context try { movies = ExampleConnector.instance.listMovies.execute().data.movies } catch (e: Exception) { // TODO: Handle error, e.g., show a Toast or update a state variable to // display an error message. } } LazyColumn(modifier = Modifier.padding(innerPadding)) { items(movies) { movie -> Text(text = movie.title) } } } } } } } |
9. ลองใช้แอปจาก Android Studio ให้เรียกใช้แอปตัวอย่างเพื่อดูการทำงาน |
|
ขั้นตอนถัดไป
ลองใช้ส่วนขยาย 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