شروع به کار با Firebase SQL Connect در Android

در این شروع سریع، یک پایگاه داده نمونه کوچک ایجاد و مستقر خواهید کرد و ازطریق برنامه Android به آن دسترسی خواهید داشت.

پیش‌نیازها

برای تکمیل این شروع سریع، به موارد زیر نیاز دارید:

  • محیطی که ابزارهای زیر در آن نصب شده باشد:
    • نسخه جدیدی از استودیو Android.
    • واسط خط فرمان Firebase. اگر NPM را نصب کرده‌اید، این دستور را اجرا کنید:
      npm install -g firebase-tools@latest
      درغیراین‌صورت، برای دستورالعمل‌های نصب به اسناد مراجعه کنید.
  • حساب Google داشته باشید.

آموزش گام‌به‌گام

آموزش گام‌به‌گام

۱. ایجاد پروژه جدید در «استودیو Android»

در «استودیو Android»، پروژه جدیدی با الگوی فعالیت خالی ایجاد کنید.

نام پروژه را Quickstart App و نام بسته را com.example.quickstartapp بگذارید.

کادر گفتگوی پروژه جدید «استودیو Android»

۲. افزودن Firebase به پروژه Android Studio

وابستگی‌های Firebase و افزونه سریال‌سازی Kotlin را به فایل‌های build.gradle.kts خود اضافه کنید.

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
}
QuickstartApp/app/build.gradle.kts
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:35.1.0"))
  implementation("com.google.firebase:firebase-dataconnect")
}

۳. مقداردهی اولیه پروژه Firebase

به فهرست راهنمای پروژه «استودیو Android» بروید و پروژه Firebase را در آن مقداردهی اولیه کنید.

cd ~/QuickstartApp
firebase login --reauth
firebase init dataconnect

وقتی درخواست شد، گزینه‌های زیر را انتخاب کنید:

  • پروژه Firebase جدیدی ایجاد کنید.
  • با Gemini طرح‌واره ایجاد نکنید (در این آموزش، از طرح‌واره نمونه ازپیش‌ساخته‌شده استفاده خواهید کرد).
  • یک نمونه و پایگاه داده آزمایشی رایگان Cloud SQL راه‌اندازی کنید.

مقادیر پیش‌فرض را برای همه پیام‌واره‌های دیگر بپذیرید.

سپس، برنامه Android خود را در پروژه Firebase ثبت کنید.

firebase apps:create -a com.example.quickstartapp android android-quickstart
firebase apps:sdkconfig android -o app/google-services.json

۴. تعاریف نمونه 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
}
dataconnect/example/queries.gql (excerpt)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

۵. استقرار طرح‌واره‌ها و عملیات

هرگاه در طرح‌واره‌ها، پُرسمان‌ها، یا جهش‌های پایگاه داده‌تان تغییری ایجاد می‌کنید، باید آن‌ها را مستقر کنید تا تغییراتتان در پایگاه داده اعمال شود.

firebase deploy --only dataconnect

‫۶. پایگاه داده را با داده‌های نمونه‌گیری‌شده تغذیه کنید

این داده‌های اولیه چیزی را دراختیارتان قرار می‌دهد که هنگام آزمایش برنامه نمونه به آن نگاه کنید. توجه داشته باشید که در این مرحله، GraphQL دلخواه را اجرا می‌کنید که برای کارهای اداری مجاز است.

firebase dataconnect:execute dataconnect/seed_data.gql

‫۷. تولید کیت توسعه نرم‌افزار کارخواه Android

این فرمان از تعاریف GraphQL شما برای تولید کیت توسعه نرم‌افزار مشتری Android به‌طور خاص برای پایگاه داده شما استفاده می‌کند. از این کتابخانه در برنامه مشتری‌تان برای انجام همه عملیات پایگاه داده استفاده می‌کنید.

با افزودن تعاریف به connector.yaml می‌توانید برای چندین پلاتفرم کتابخانه تولید کنید، ازجمله Swift برای iOS، جاوا اسکریپت برای وب، و Flutter.

firebase dataconnect:sdk:generate
کیت توسعه نرم‌افزار Android تولیدشده به‌طور خودکار (گزیده)
public interface ExampleConnector : GeneratedConnector<ExampleConnector> {
  override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect

  public val listMovies: ListMoviesQuery

  // ...
}

‫۸. نوشتن نمونه کارخواه Android

محتویات app/src/main/java/com/example/quickstartapp/MainActivity.kt را با این برنامه ساده Android جایگزین کنید.

توجه داشته باشید که برنامه دسترسی لازم به پایگاه داده را بااستفاده از تابعی از کیت توسعه نرم‌افزار تولیدشده تکمیل می‌کند.

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)
            }
          }
        }
      }
    }
  }
}

‫۹. برنامه را امتحان کنید

از Android Studio، برنامه نمونه را اجرا کنید تا آن را در عمل ببینید.

مراحل بعدی

افزونه SQL Connect VS Code را امتحان کنید

هنگام توسعه با SQL Connect، اکیداً توصیه می‌کنیم از افزونه SQL Connect VS Code استفاده کنید. حتی اگر از Visual Studio Code به‌عنوان محیط توسعه اصلی خود استفاده نمی‌کنید، این افزونه چندین ویژگی ارائه می‌دهد که توسعه طرح‌واره و عملیات را راحت‌تر می‌کند:

  • سرور زبان GraphQL که بررسی نحو و پیشنهادهای تکمیل خودکار مختص SQL Connect را ارائه می‌دهد
  • دکمه‌های CodeLens در خط کد شما که به شما امکان می‌دهد داده‌ها را از فایل‌های تعریف طرح‌واره خود بخوانید و بنویسید و پرسمان‌ها و جهش‌ها را از تعاریف عملیات خود اجرا کنید.
  • کیت‌های توسعه نرم‌افزار تولیدشده‌تان را به‌طور خودکار با تعاریف GraphQL همگام‌سازی کنید.
  • راه‌اندازی شبیه‌ساز محلی ساده شده است.
  • استقرار ساده‌شده برای تولید.

از شبیه‌ساز SQL Connect برای توسعه محلی استفاده کنید

اگرچه این آموزش به شما نشان داد که چگونه طرح‌واره‌ها و عملیات SQL Connect را مستقیماً در محیط تولید مستقر کنید، احتمالاً نمی‌خواهید درحالی‌که به‌طور فعال درحال توسعه برنامه‌تان هستید، تغییراتی در پایگاه داده تولید خود ایجاد کنید. درعوض، شبیه‌ساز SQL Connect را راه‌اندازی کنید و کار توسعه خود را به‌جای محیط تولید، در آن انجام دهید. شبیه‌ساز یک نمونه محلی PGlite راه‌اندازی می‌کند که رفتاری مشابه نمونه زنده PostgreSQL در Cloud SQL دارد.

با نحوه نوشتن طرح‌واره‌ها و عملیات برای برنامه‌تان آشنا شوید

هنگام توسعه برنامه‌ها با SQL Connect، طراحی طرح‌واره‌ها و عملیات شما یکی از اولین و مهم‌ترین وظایف توسعه‌ای است که تکمیل خواهید کرد.

  • ‫Gemini در کنسول Firebase یک ابزار هوش مصنوعی است که می‌تواند طرح‌واره‌های SQL Connect را از شرح زبان طبیعی برنامه شما تولید کند. این ابزار می‌تواند به شما کمک کند خیلی سریع شروع کنید، به‌ویژه اگر قبلاً با پایگاه‌های داده رابطه‌ای کار نکرده باشید.
  • یا می‌توانید طرح‌واره‌ها، پُرسمان‌ها، و جهش‌های پایگاه داده را مستقیماً بااستفاده از GraphQL بنویسید. با راهنمایی‌های موجود در طراحی طرح‌واره‌های SQL Connect شروع کنید، و سپس به صفحه‌های بعدی بروید تا با نحوه نوشتن عملیات آشنا شوید.

با نحوه دریافت به‌روزرسانی‌های هم‌زمان از SQL Connect آشنا شوید

می‌توانید از SQL Connect برای نوشتن برنامه‌های کارخواه استفاده کنید که به تغییر داده‌ها در زمان واقعی واکنش نشان می‌دهند. دریافت به‌روزرسانی‌های هم‌زمان از SQL Connect را ببینید.