Trong hướng dẫn bắt đầu nhanh này, bạn sẽ tạo và triển khai một cơ sở dữ liệu mẫu nhỏ, đồng thời truy cập vào cơ sở dữ liệu đó từ một ứng dụng Android.
Điều kiện tiên quyết
Để hoàn tất hướng dẫn bắt đầu nhanh này, bạn cần có những thông tin sau:
- Một môi trường đã cài đặt các công cụ sau:
- Một phiên bản gần đây của Android Studio.
- Firebase CLI. Nếu bạn đã cài đặt NPM, hãy chạy:
Nếu không, hãy xem tài liệu để biết hướng dẫn cài đặt.npm install -g firebase-tools@latest
- Tài khoản Google.
Hướng dẫn
| Hướng dẫn | |
|---|---|
1. Tạo một dự án Android Studio mớiTrong Android Studio, hãy tạo một dự án mới bằng mẫu Empty Activity (Hoạt động trống). Đặt tên cho dự án là Quickstart App (Ứng dụng bắt đầu nhanh) với tên gói com.example.quickstartapp. |
|
2. Thêm Firebase vào dự án Android StudioThêm các phần phụ thuộc của Firebase và trình bổ trợ Kotlin serialization vào tệp |
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. Khởi chạy một dự án FirebaseChuyển sang thư mục dự án Android Studio và khởi chạy một dự án Firebase trong thư mục đó. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectKhi được nhắc, hãy chọn các lựa chọn sau:
Chấp nhận các giá trị mặc định cho tất cả các lời nhắc khác. Tiếp theo, hãy đăng ký ứng dụng Android trong dự án Firebase. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Xem lại các định nghĩa GraphQL mẫuTrong SQL Connect, bạn xác định tất cả các giản đồ và thao tác cơ sở dữ liệu bằng GraphQL. Khi bạn khởi chạy dự án, CLI Firebase đã tạo một số định nghĩa mẫu để giúp bạn bắt đầu. |
dataconnect/schema/schema.gql (đoạn trích)
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. Triển khai giản đồ và các thao tácMỗi khi thay đổi giản đồ, truy vấn hoặc đột biến cơ sở dữ liệu, bạn phải triển khai các thay đổi đó để chúng có hiệu lực trên cơ sở dữ liệu. |
|
6. Điền dữ liệu mẫu vào cơ sở dữ liệuDữ liệu ban đầu này sẽ giúp bạn có thông tin để xem xét khi kiểm thử ứng dụng mẫu. Xin lưu ý rằng trong bước này, bạn đang thực thi GraphQL tuỳ ý, được phép thực hiện các tác vụ quản trị. |
|
7. Tạo SDK ứng dụng AndroidLệnh này sử dụng các định nghĩa GraphQL của bạn để tạo một SDK ứng dụng Android dành riêng cho cơ sở dữ liệu của bạn. Bạn dùng thư viện này trong ứng dụng khách để thực hiện tất cả các thao tác liên quan đến cơ sở dữ liệu. Bạn có thể tạo thư viện cho nhiều nền tảng, bao gồm Swift cho iOS, JavaScript cho web và Flutter, bằng cách thêm các định nghĩa vào |
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Viết một ứng dụng mẫu trên AndroidThay thế nội dung của Lưu ý rằng ứng dụng hoàn tất việc truy cập cơ sở dữ liệu cần thiết bằng cách sử dụng một hàm từ SDK đã tạo. |
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. Dùng thử ứng dụngTrong Android Studio, hãy chạy ứng dụng mẫu để xem ứng dụng này hoạt động. |
|
Các bước tiếp theo
Hãy thử tiện ích SQL Connect VS Code
Khi phát triển bằng SQL Connect, bạn nên sử dụng tiện ích SQL Connect VS Code. Ngay cả khi bạn không sử dụng Visual Studio Code làm môi trường phát triển chính, tiện ích này vẫn cung cấp một số tính năng giúp việc phát triển lược đồ và thao tác trở nên thuận tiện hơn:
- Một máy chủ ngôn ngữ GraphQL, cung cấp tính năng kiểm tra cú pháp và đề xuất tự động hoàn thành dành riêng cho SQL Connect
- Các nút CodeLens nằm cùng dòng với mã của bạn, cho phép bạn đọc và ghi dữ liệu từ các tệp định nghĩa lược đồ, đồng thời thực thi các truy vấn và đột biến từ các định nghĩa thao tác.
- Tự động đồng bộ hoá các SDK đã tạo với các định nghĩa GraphQL.
- Thiết lập trình mô phỏng cục bộ đơn giản.
- Đơn giản hoá việc triển khai cho kênh phát hành công khai.
Sử dụng trình mô phỏng SQL Connect để phát triển cục bộ
Mặc dù hướng dẫn này cho bạn biết cách triển khai trực tiếp các lược đồ và thao tác SQL Connect vào thực tế, nhưng có thể bạn sẽ không muốn thực hiện các thay đổi đối với cơ sở dữ liệu thực tế trong khi đang tích cực phát triển ứng dụng. Thay vào đó, hãy thiết lập trình mô phỏng SQL Connect và thực hiện công việc phát triển dựa trên trình mô phỏng này thay vì thực tế. Trình mô phỏng thiết lập một phiên bản PGlite cục bộ hoạt động tương tự như một phiên bản PostgreSQL trực tiếp trên Cloud SQL.
Tìm hiểu cách viết giản đồ và các thao tác cho ứng dụng của bạn
Khi phát triển ứng dụng bằng SQL Connect, việc thiết kế các lược đồ và thao tác là một trong những nhiệm vụ phát triển đầu tiên và quan trọng nhất mà bạn sẽ hoàn thành.
- Gemini trong bảng điều khiển Firebase là một công cụ AI có thể tạo lược đồ SQL Connect từ nội dung mô tả bằng ngôn ngữ tự nhiên về ứng dụng của bạn. Công cụ này có thể giúp bạn bắt đầu rất nhanh, đặc biệt nếu bạn chưa từng làm việc với cơ sở dữ liệu quan hệ trước đây.
- Ngoài ra, bạn có thể viết trực tiếp các lược đồ cơ sở dữ liệu, truy vấn và đột biến bằng GraphQL. Bắt đầu với hướng dẫn trong phần Thiết kế các lược đồ SQL Connect, sau đó tiếp tục xem các trang tiếp theo để tìm hiểu cách viết các thao tác.