במדריך למתחילים הזה, תיצרו ותפרסו מסד נתונים קטן לדוגמה ותגשו אליו מאפליקציית 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מוסיפים את התלויות של 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. כשאתם מאתחלים את הפרויקט, ה-CLI של Firebase יוצר כמה הגדרות לדוגמה כדי לעזור לכם להתחיל. |
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. הוספת נתונים לדוגמה למסד הנתוניםנתוני ה-seed האלה יאפשרו לכם לראות משהו כשבודקים את האפליקציה לדוגמה. שימו לב: בשלב הזה אתם מריצים GraphQL שרירותי, וזה מותר למשימות ניהול. |
|
7. יצירת SDK של לקוח Androidהפקודה הזו משתמשת בהגדרות 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, ואז להמשיך לדפים הבאים כדי ללמוד איך לכתוב פעולות.