ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะได้สร้างและติดตั้งใช้งานฐานข้อมูลตัวอย่างขนาดเล็ก รวมถึงเข้าถึงฐานข้อมูลดังกล่าวจากแอป 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.4.4" 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.14.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 Client ตัวอย่างแทนที่เนื้อหาของ
โปรดสังเกตว่าแอปจะเข้าถึงฐานข้อมูลที่จำเป็นโดยใช้ฟังก์ชันจาก 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, แล้วไปที่หน้าติดตามเพื่อดูวิธีเขียนการดำเนินการ