iOS पर Firebase SQL Connect का इस्तेमाल शुरू करना

इस क्विकस्टार्ट में, आपको डेटाबेस का एक छोटा सैंपल बनाने और उसे डिप्लॉय करने के साथ-साथ, iOS ऐप्लिकेशन से उसे ऐक्सेस करने का तरीका बताया जाएगा.

ज़रूरी शर्तें

इस क्विकस्टार्ट को पूरा करने के लिए, आपको इनकी ज़रूरत होगी:

  • ऐसा एनवायरमेंट जिसमें ये टूल इंस्टॉल हों:
    • Xcode का कोई नया वर्शन.
    • Firebase CLI. अगर आपने NPM इंस्टॉल किया है, तो यह कमांड चलाएं:
      npm install -g firebase-tools@latest
      इसके अलावा, इंस्टॉल करने के निर्देशों के लिए दस्तावेज़ देखें.
  • एक Google खाता.

ट्यूटोरियल

ट्यूटोरियल

1. Xcode में नया प्रोजेक्ट बनाना

Xcode में, ऐप्लिकेशन टेंप्लेट की मदद से नया प्रोजेक्ट बनाएं.

प्रोजेक्ट का नाम Quickstart रखें. साथ ही, बंडल आइडेंटिफ़ायर com.example.Quickstart रखें.

Xcode का नया प्रोजेक्ट डायलॉग

प्रोजेक्ट को किसी खाली फ़ोल्डर में बनाएं. जैसे, ~/qs-ios. Xcode, ~/qs-ios/Quickstart नाम का एक फ़ोल्डर बनाएगा. इसमें आपके प्रोजेक्ट की फ़ाइलें होंगी.

2. Firebase प्रोजेक्ट को शुरू करना

अपने Xcode प्रोजेक्ट की प्रोजेक्ट डायरेक्ट्री पर जाएं और उसमें Firebase प्रोजेक्ट शुरू करें.

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

अनुरोध मिलने पर, ये विकल्प चुनें:

  • नया Firebase प्रोजेक्ट बनाएं.
  • Gemini की मदद से स्कीमा न बनाएं. इस ट्यूटोरियल में, आपको पहले से बने उदाहरण स्कीमा का इस्तेमाल करना है.
  • Cloud SQL का कोई ऐसा Cloud SQL इंस्टेंस और डेटाबेस बनाएं जिसे मुफ़्त में आज़माया जा सके.

अन्य सभी अनुरोधों के लिए, डिफ़ॉल्ट वैल्यू स्वीकार करें.

इसके बाद, अपने iOS ऐप्लिकेशन को Firebase प्रोजेक्ट में रजिस्टर करें.

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

App Store आईडी की जानकारी देने का अनुरोध मिलने पर, Enter दबाकर इस चरण को छोड़ दें.

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

Xcode में, फ़ाइल > "Quickstart" में फ़ाइलें जोड़ें को चुनें. इसके बाद, GoogleService-Info.plist फ़ाइल चुनें.

3. 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
  }
}

4. अपने स्कीमा और कार्रवाइयों को डिप्लॉय करना

डेटाबेस के स्कीमा, क्वेरी या म्यूटेशन में बदलाव करने पर, आपको उन्हें डिप्लॉय करना होगा. ऐसा करने पर ही, डेटाबेस में आपके बदलाव दिखेंगे.

firebase deploy --only dataconnect

5. डेटाबेस में सैंपल डेटा जोड़ना

सैंपल ऐप्लिकेशन की जांच करते समय, इस डेटा की मदद से आपको यह देखने में मदद मिलेगी कि ऐप्लिकेशन कैसा काम करता है. ध्यान दें कि इस चरण में, आपको GraphQL का इस्तेमाल करके कोई भी क्वेरी चलाने की अनुमति है. ऐसा, एडमिन से जुड़े टास्क पूरे करने के लिए किया जा सकता है.

firebase dataconnect:execute dataconnect/seed_data.gql

6. iOS क्लाइंट SDK टूल जनरेट करना

इस कमांड से, GraphQL की परिभाषाओं का इस्तेमाल करके, आपके डेटाबेस के लिए खास तौर पर iOS क्लाइंट SDK टूल जनरेट किया जाता है. क्लाइंट ऐप्लिकेशन में, इस लाइब्रेरी का इस्तेमाल करके डेटाबेस से जुड़ी सभी कार्रवाइयां की जा सकती हैं.

`connector.yaml` में परिभाषाएं जोड़कर, कई प्लैटफ़ॉर्म के लिए लाइब्रेरी जनरेट की जा सकती हैं. इनमें Android के लिए Kotlin, वेब के लिए JavaScript, और Flutter शामिल हैं.

firebase dataconnect:sdk:generate
iOS SDK टूल (excerpt)
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)
  }
}

7. अपने Xcode प्रोजेक्ट में Firebase की डिपेंडेंसी जोड़ना

Swift Package Manager का इस्तेमाल करके, जनरेट की गई लाइब्रेरी को अपने प्रोजेक्ट में जोड़ें. जनरेट की गई लाइब्रेरी जोड़ने पर, इसमें Firebase की कोर लाइब्रेरी और Firebase SQL Connect लाइब्रेरी भी शामिल हो जाएंगी.

Xcode के नेविगेशन बार में, फ़ाइल > पैकेज की डिपेंडेंसी जोड़ें > स्थानीय जोड़ें को चुनें. इसके बाद, जनरेट की गई लाइब्रेरी वाला फ़ोल्डर चुनें. FirebaseDataConnectGenerated/DataConnectGenerated/. सही फ़ोल्डर में, Package.swift नाम की एक फ़ाइल होगी.

8. 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
    }
  }
}

9. ऐप्लिकेशन आज़माएं

सैंपल ऐप्लिकेशन को Xcode से चलाकर देखें कि यह कैसा काम करता है.

अगले चरण

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 का एक स्थानीय इंस्टेंस सेट अप करता है. यह Cloud SQL पर मौजूद PostgreSQL के लाइव इंस्टेंस की तरह काम करता है.

अपने ऐप्लिकेशन के लिए स्कीमा और ऑपरेशन लिखने का तरीका जानना

SQL Connect की मदद से ऐप्लिकेशन डेवलप करते समय, स्कीमा और ऑपरेशन का डिज़ाइन, डेवलपमेंट के सबसे पहले और सबसे अहम टास्क में से एक है.

SQL Connect से रीयल-टाइम अपडेट पाने का तरीका जानना

SQL Connect का इस्तेमाल करके, ऐसे क्लाइंट ऐप्लिकेशन लिखे जा सकते हैं जो रीयल टाइम में डेटा में होने वाले बदलावों के हिसाब से काम करते हैं. से रीयल-टाइम अपडेट पाना लेख पढ़ें.SQL Connect