iOS-এ Firebase SQL Connect দিয়ে শুরু করুন

এই কুইকস্টার্টে, আপনি একটি ছোট নমুনা ডেটাবেস তৈরি ও স্থাপন করবেন এবং একটি iOS অ্যাপ থেকে সেটি অ্যাক্সেস করবেন।

পূর্বশর্ত

এই কুইকস্টার্টটি সম্পন্ন করতে আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:

  • এমন একটি পরিবেশ যেখানে নিম্নলিখিত টুলগুলি ইনস্টল করা আছে:
    • Xcode- এর একটি সাম্প্রতিক সংস্করণ।
    • ফায়ারবেস সিএলআই । যদি আপনার এনপিএম ইনস্টল করা থাকে, তাহলে চালান:
      npm install -g firebase-tools@latest
      অন্যথায়, ইনস্টলেশন নির্দেশাবলীর জন্য ডকুমেন্টেশন দেখুন।
  • একটি গুগল অ্যাকাউন্ট।

টিউটোরিয়াল

টিউটোরিয়াল

১. একটি নতুন Xcode প্রজেক্ট তৈরি করুন

Xcode-এ App টেমপ্লেট ব্যবহার করে একটি নতুন প্রজেক্ট তৈরি করুন।

প্রজেক্টটির নাম Quickstart দিন এবং বান্ডেল আইডেন্টিফায়ার হিসেবে com.example.Quickstart ব্যবহার করুন।

Xcode নতুন প্রজেক্ট ডায়ালগ

প্রজেক্টটি একটি খালি ফোল্ডারে তৈরি করুন, যেমন ~/qs-ios । Xcode ~/qs-ios/Quickstart একটি ফোল্ডার তৈরি করবে, যেখানে আপনার প্রজেক্ট ফাইলগুলো থাকবে।

২. একটি ফায়ারবেস প্রজেক্ট শুরু করুন

আপনার Xcode প্রজেক্টের ডিরেক্টরিতে যান এবং সেখানে একটি Firebase প্রজেক্ট শুরু করুন।

cd ~/qs-ios
firebase login --reauth
firebase init dataconnect

নির্দেশিত হলে, নিম্নলিখিত বিকল্পগুলি বেছে নিন:

  • একটি নতুন ফায়ারবেস প্রজেক্ট তৈরি করুন।
  • জেমিনি দিয়ে কোনো স্কিমা তৈরি করবেন না (এই টিউটোরিয়ালে, আপনি একটি আগে থেকে তৈরি উদাহরণ স্কিমা ব্যবহার করবেন)।
  • একটি বিনামূল্যের ট্রায়াল Cloud SQL ইনস্ট্যান্স এবং ডেটাবেস সরবরাহ করুন।

অন্যান্য সকল প্রম্পটের জন্য ডিফল্ট মানগুলো গ্রহণ করুন।

এরপরে, আপনার Firebase প্রজেক্টে iOS অ্যাপটি রেজিস্টার করুন।

firebase apps:create --bundle-id com.example.Quickstart ios ios-quickstart

অ্যাপ স্টোর আইডি উল্লেখ করতে বলা হলে, ধাপটি এড়িয়ে যেতে এন্টার চাপুন।

firebase apps:sdkconfig ios -o Quickstart/GoogleService-Info.plist

Xcode-এ, File > Add Files থেকে "Quickstart" নির্বাচন করুন এবং GoogleService-Info.plist ফাইলটি বেছে নিন।

৩. উদাহরণস্বরূপ 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

৬. একটি iOS ক্লায়েন্ট SDK তৈরি করুন

এই কমান্ডটি আপনার GraphQL ডেফিনিশন ব্যবহার করে বিশেষভাবে আপনার ডাটাবেসের জন্য একটি iOS ক্লায়েন্ট SDK তৈরি করে। আপনার ক্লায়েন্ট অ্যাপে সমস্ত ডাটাবেস অপারেশন সম্পাদন করতে আপনি এই লাইব্রেরিটি ব্যবহার করেন।

connector.yaml এ ডেফিনিশন যোগ করার মাধ্যমে আপনি অ্যান্ড্রয়েডের জন্য কোটলিন, ওয়েবের জন্য জাভাস্ক্রিপ্ট এবং ফ্লাটার সহ একাধিক প্ল্যাটফর্মের জন্য লাইব্রেরি তৈরি করতে পারেন।

firebase dataconnect:sdk:generate
স্বয়ংক্রিয়ভাবে তৈরি iOS SDK (উদ্ধৃতাংশ)
public class ListMoviesQuery {

  // ...

  @MainActor
  public func execute(
    fetchPolicy: QueryFetchPolicy = .preferCache,
  ) async throws -> OperationResult<ListMoviesQuery.Data> {
    var variables = ListMoviesQuery.Variables()

    let ref = dataConnect.query(
      name: "ListMovies", variables: variables, resultsDataType: ListMoviesQuery.Data.self,
      publisher: .observableMacro)

    let refCast = ref as! QueryRefObservation<ListMoviesQuery.Data, ListMoviesQuery.Variables>
    return try await refCast.execute(fetchPolicy: fetchPolicy)
  }
}

৭. আপনার Xcode প্রজেক্টে Firebase ডিপেন্ডেন্সিগুলো যোগ করুন।

সুইফট প্যাকেজ ম্যানেজার ব্যবহার করে আপনার প্রজেক্টে জেনারেট করা লাইব্রেরিটি যোগ করুন। যখন আপনি জেনারেট করা লাইব্রেরিটি যোগ করবেন, তখন এটি স্বয়ংক্রিয়ভাবে ফায়ারবেস কোর লাইব্রেরি এবং Firebase SQL Connect লাইব্রেরি অন্তর্ভুক্ত করে নেবে।

Xcode নেভিগেশন বারে, File > Add Package Dependencies > Add Local নির্বাচন করুন এবং জেনারেট করা লাইব্রেরিটি যে ফোল্ডারে রয়েছে, অর্থাৎ FirebaseDataConnectGenerated/DataConnectGenerated/ , সেটি বেছে নিন। সঠিক ফোল্ডারটিতে Package.swift নামের একটি ফাইল থাকবে।

৮. একটি নমুনা iOS ক্লায়েন্ট লিখুন

Quickstart/QuickstartApp.swift ফাইলের বিষয়বস্তু এই সহজ iOS অ্যাপটি দিয়ে প্রতিস্থাপন করুন।

লক্ষ্য করুন যে, অ্যাপটি তৈরি করা SDK-এর একটি ফাংশন ব্যবহার করে প্রয়োজনীয় ডাটাবেস অ্যাক্সেস সম্পন্ন করে।

import SwiftUI
import FirebaseCore
import FirebaseDataConnect
import DataConnectGenerated

@main
struct QuickstartApp: App {
  init() {
    FirebaseApp.configure()
  }
  var body: some Scene {
    WindowGroup {
      ListMovieView()
    }
  }
}

struct ListMovieView: View {
  @State private var moviesData: ListMoviesQuery.Data?

  var body: some View {
    VStack {
      ForEach(moviesData?.movies ?? []) { movie in
        Text(movie.title)
      }
    }
    .task {
      let result = try? await DataConnect.exampleConnector
          .listMoviesQuery.execute()
      self.moviesData = result?.data
    }
  }
}

৯. অ্যাপটি ব্যবহার করে দেখুন

এটি কীভাবে কাজ করে তা দেখতে, এক্সকোড থেকে উদাহরণ অ্যাপটি চালান।

পরবর্তী পদক্ষেপ

SQL Connect VS Code এক্সটেনশনটি ব্যবহার করে দেখুন

SQL Connect ব্যবহার করে ডেভেলপ করার সময়, আমরা SQL Connect VS Code এক্সটেনশনটি ব্যবহার করার জন্য জোরালোভাবে সুপারিশ করি। এমনকি যদি আপনি আপনার প্রধান ডেভেলপমেন্ট এনভায়রনমেন্ট হিসেবে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার নাও করেন, তবুও এই এক্সটেনশনটি এমন বেশ কিছু ফিচার প্রদান করে যা স্কিমা এবং অপারেশন ডেভেলপমেন্টকে আরও সুবিধাজনক করে তোলে:

  • একটি GraphQL ল্যাঙ্গুয়েজ সার্ভার, যা SQL Connect জন্য নির্দিষ্ট সিনট্যাক্স চেকিং এবং অটোকমপ্লিট সাজেশন প্রদান করে।
  • আপনার কোডের সাথে সংযুক্ত কোডলেন্স বাটন, যা আপনাকে আপনার স্কিমা ডেফিনিশন ফাইল থেকে ডেটা পড়তে ও লিখতে এবং আপনার অপারেশন ডেফিনিশন থেকে কোয়েরি ও মিউটেশন সম্পাদন করতে দেয়।
  • আপনার তৈরি করা SDK-গুলোকে আপনার GraphQL ডেফিনিশনগুলোর সাথে স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ করে রাখুন।
  • সরলীকৃত স্থানীয় এমুলেটর সেটআপ।
  • প্রোডাকশনে স্থাপন প্রক্রিয়া সহজতর।

স্থানীয় ডেভেলপমেন্টের জন্য SQL Connect এমুলেটর ব্যবহার করুন

যদিও এই টিউটোরিয়ালটি আপনাকে দেখিয়েছে কিভাবে SQL Connect স্কিমা এবং অপারেশন সরাসরি প্রোডাকশনে ডেপ্লয় করতে হয়, আপনি সম্ভবত আপনার অ্যাপ ডেভেলপ করার সময় প্রোডাকশন ডেটাবেসে কোনো পরিবর্তন করতে চাইবেন না। এর পরিবর্তে, SQL Connect এমুলেটর সেট আপ করুন এবং প্রোডাকশনের বদলে সেটির উপর আপনার ডেভেলপমেন্টের কাজ করুন। এমুলেটরটি একটি লোকাল PGlite ইনস্ট্যান্স তৈরি করে, যা Cloud SQL এর একটি লাইভ PostgreSQL ইনস্ট্যান্সের মতোই আচরণ করে।

আপনার অ্যাপের জন্য স্কিমা এবং অপারেশন কীভাবে লিখতে হয় তা শিখুন।

SQL Connect ব্যবহার করে অ্যাপ তৈরি করার সময়, আপনার স্কিমা এবং অপারেশনগুলির ডিজাইন করা হলো প্রথম এবং সবচেয়ে গুরুত্বপূর্ণ ডেভেলপমেন্ট কাজগুলোর মধ্যে একটি যা আপনাকে সম্পন্ন করতে হবে।

  • Firebase কনসোলের জেমিনি হলো একটি এআই টুল যা আপনার অ্যাপের স্বাভাবিক ভাষার বর্ণনা থেকে SQL Connect স্কিমা তৈরি করতে পারে। এই টুলটি আপনাকে খুব দ্রুত কাজ শুরু করতে সাহায্য করতে পারে, বিশেষ করে যদি আপনি আগে কখনো রিলেশনাল ডেটাবেস নিয়ে কাজ না করে থাকেন।
  • বিকল্পভাবে, আপনি সরাসরি GraphQL ব্যবহার করে ডাটাবেস স্কিমা, কোয়েরি এবং মিউটেশন লিখতে পারেন। "Design SQL Connect schemas"- এর নির্দেশিকা দিয়ে শুরু করুন, এবং তারপরে অপারেশন কীভাবে লিখতে হয় তা শিখতে পরবর্তী পৃষ্ঠাগুলিতে যান।

SQL Connect থেকে কীভাবে রিয়েল-টাইম আপডেট পাবেন তা জানুন।

আপনি SQL Connect ব্যবহার করে এমন ক্লায়েন্ট অ্যাপ্লিকেশন লিখতে পারেন যা রিয়েল টাইমে পরিবর্তনশীল ডেটার প্রতি সাড়া দেয়। SQL Connect থেকে রিয়েল-টাইম আপডেট কীভাবে পাবেন তা দেখুন।