شروع کار با Firebase SQL Connect در اندروید

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

پیش‌نیازها

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

  • محیطی با ابزارهای نصب شده زیر:
  • یک حساب گوگل.

آموزش

آموزش

۱. یک پروژه جدید اندروید استودیو ایجاد کنید

در اندروید استودیو، یک پروژه جدید با الگوی Empty Activity ایجاد کنید.

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

پنجره‌ی گفتگوی پروژه‌ی جدید اندروید استودیو

۲. فایربیس را به پروژه اندروید استودیو خود اضافه کنید

وابستگی‌های 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.4.4" 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:34.14.0"))
  implementation("com.google.firebase:firebase-dataconnect")
}

۳. راه‌اندازی اولیه یک پروژه Firebase

به دایرکتوری پروژه اندروید استودیو بروید و یک پروژه Firebase را در آن راه‌اندازی کنید.

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

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

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

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

در مرحله بعد، برنامه اندروید خود را در پروژه 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 (گزیده)
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 (گزیده)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

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

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

firebase deploy --only dataconnect

۶. پایگاه داده را با داده‌های نمونه پر کنید

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

firebase dataconnect:execute dataconnect/seed_data.gql

۷. یک SDK کلاینت اندروید ایجاد کنید

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

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

firebase dataconnect:sdk:generate
SDK اندروید تولید شده خودکار (گزیده)
public interface ExampleConnector : GeneratedConnector<ExampleConnector> {
  override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect

  public val listMovies: ListMoviesQuery

  // ...
}

۸. یک کلاینت اندروید نمونه بنویسید

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

توجه داشته باشید که برنامه با استفاده از تابعی از 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)
            }
          }
        }
      }
    }
  }
}

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

برای مشاهده‌ی عملکرد آن، برنامه‌ی نمونه را از اندروید استودیو اجرا کنید.

مراحل بعدی

افزونه 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 یک ابزار هوش مصنوعی است که می‌تواند طرحواره‌های SQL Connect را از توضیحات زبان طبیعی برنامه شما تولید کند. این ابزار می‌تواند خیلی سریع شما را شروع کند، به خصوص اگر قبلاً هرگز با پایگاه‌های داده رابطه‌ای کار نکرده‌اید.
  • از طرف دیگر، می‌توانید طرحواره‌ها، کوئری‌ها و جهش‌های پایگاه داده را مستقیماً با استفاده از GraphQL بنویسید. با راهنمایی‌های موجود در طرحواره‌های Design SQL Connect شروع کنید و سپس برای یادگیری نحوه نوشتن عملیات، به صفحات بعدی بروید.