इस क्विकस्टार्ट में, आपको प्रोडक्शन एसक्यूएल इंस्टेंस सेट अप किए बिना, अपने ऐप्लिकेशन में स्थानीय तौर पर Firebase Data Connect बनाने का तरीका बताया जाएगा. आपको:
- अपने Firebase प्रोजेक्ट में Firebase Data Connect जोड़ें.
- लोकल इंस्टेंस के साथ काम करने के लिए, Visual Studio Code एक्सटेंशन के साथ डेवलपमेंट एनवायरमेंट सेट अप करें.
- इसके बाद, हम आपको बताएंगे कि:
- VS Code एक्सटेंशन टूलिंग का इस्तेमाल करके, Gemini Code Assist की मदद से ये काम करें:
- किसी ऐप्लिकेशन के लिए स्कीमा बनाना
- अपने लोकल डेटाबेस को भरने के लिए, एडमिन से जुड़ी क्वेरी और म्यूटेशन बनाएं
- आपके ऐप्लिकेशन के लिए, डिप्लॉय किए जा सकने वाले कनेक्टर में क्वेरी और म्यूटेशन लागू करने में मदद करना
- लोकल एम्युलेटर के ख़िलाफ़ सैंपल डेटा का इस्तेमाल करके, अपनी क्वेरी और म्यूटेशन की जांच करना
- स्ट्रॉन्गली टाइप किए गए एसडीके जनरेट करें और उन्हें अपने ऐप्लिकेशन में इस्तेमाल करें
- अपने फ़ाइनल स्कीमा और कनेक्टर को क्लाउड पर डप्लॉय करें. यह चरण ज़रूरी नहीं है. हालांकि, इसके लिए आपको Blaze प्लान को अपग्रेड करना होगा.
- VS Code एक्सटेंशन टूलिंग का इस्तेमाल करके, Gemini Code Assist की मदद से ये काम करें:
स्थानीय डेवलपमेंट का कोई फ़्लो चुनें
Data Connect आपको डेवलपमेंट टूल इंस्टॉल करने और स्थानीय तौर पर काम करने के दो तरीके उपलब्ध कराता है.
ज़रूरी शर्तें
इस क्विकस्टार्ट का इस्तेमाल करने के लिए, आपके पास ये चीज़ें होनी चाहिए.
- Visual Studio Code.
- Node.js इंस्टॉल किया गया हो. इसके लिए, Windows पर nvm-windows और macOS या Linux पर nvm का इस्तेमाल किया गया हो.
- एक Firebase प्रोजेक्ट. अगर आपने पहले से कोई खाता नहीं बनाया है, तो Firebase कंसोल में जाकर खाता बनाएं.
डेवलपमेंट एनवायरमेंट सेट अप करना
- अपने लोकल प्रोजेक्ट के लिए नई डायरेक्ट्री बनाएं.
- नई डायरेक्ट्री में VS Code खोलें.
- Visual Studio Code Marketplace से, Firebase Data Connect एक्सटेंशन इंस्टॉल करें.
अपनी प्रोजेक्ट डायरेक्ट्री सेट अप करना
अपने लोकल प्रोजेक्ट को सेट अप करने के लिए, अपनी प्रोजेक्ट डायरेक्ट्री को शुरू करें. आईडीई विंडो में, बाईं ओर मौजूद पैनल में, Firebase आइकॉन पर क्लिक करें. इससे Data Connect VS Code एक्सटेंशन का यूज़र इंटरफ़ेस (यूआई) खुल जाएगा:
- Google से साइन इन करें बटन पर क्लिक करें.
- Firebase प्रोजेक्ट कनेक्ट करें बटन पर क्लिक करें. इसके बाद, वह प्रोजेक्ट चुनें जिसे आपने पहले कंसोल में बनाया था.
- Run firebase init बटन पर क्लिक करें.
एम्युलेटर शुरू करें बटन पर क्लिक करें.
स्कीमा बनाना
अपनी Firebase प्रोजेक्ट डायरेक्ट्री में, /dataconnect/schema/schema.gql
फ़ाइल में, GraphQL स्कीमा को परिभाषित करना शुरू करें. उदाहरण के लिए, फ़िल्म की समीक्षाएं.
स्कीमा बनाने के लिए Gemini Code Assist का इस्तेमाल करना
Gemini Code Assist का इस्तेमाल करके, मूवी की समीक्षा करने वाले ऐप्लिकेशन का स्कीमा बनाने के लिए:
- VS Code के Data Connect एक्सटेंशन का साइडबार खोलने के लिए, उसके आइकॉन पर क्लिक करें.
- एआई की मदद से अपना स्कीमा और क्वेरी बनाएं पर क्लिक करें. Gemini Code Assist चैट विंडो खुलती है.
- चैट विंडो में सबसे नीचे, पक्का करें कि एजेंट मोड चालू हो.
- चैट विंडो में सबसे नीचे मौजूद चैट बॉक्स पर क्लिक करें. इसके बाद, आपको जिस तरह का ऐप्लिकेशन बनाना है उसके बारे में सामान्य भाषा में जानकारी दें.
- Enter दबाएं. इसके बाद, Gemini, MCP सर्वर की वह कमांड दिखाएगा जिसे वह स्कीमा डेवलप करने के लिए इस्तेमाल करेगा.
- स्वीकार करें क्लिक करें. कुछ देर बाद, सुझाया गया स्कीमा दिखता है. स्कीमा की समीक्षा करें.
schema.gql
में कोड जोड़ने के लिए:- Gemini Code Assist के फ़ाइल अपडेट करने के लिए प्रॉम्प्ट करने का इंतज़ार करें.
- फ़ाइल में बदलाव करने के लिए, स्वीकार करें पर क्लिक करें. इसके अलावा, बदलाव लागू करने से पहले बदलाव देखें पर क्लिक करें.
मूवी
Data Connect में, GraphQL फ़ील्ड को कॉलम में मैप किया जाता है. फ़िल्म में id
,
title
, imageUrl
, और genre
है. Data Connect, प्रिमिटिव डेटा टाइप को पहचानता है: String
और UUID
.
यहां दिए गए स्निपेट को कॉपी करें या फ़ाइल में मौजूद मिलती-जुलती लाइनों से टिप्पणी हटाएं.
# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
MovieMetadata
आपको टाइप की परिभाषा कुछ इस तरह दिख सकती है. इसके अलावा, यहां दिए गए स्निपेट को कॉपी किया जा सकता है या डिफ़ॉल्ट फ़ाइल में मौजूद लाइनों से टिप्पणी हटाने का विकल्प चुना जा सकता है.
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
ध्यान दें कि movie
फ़ील्ड को Movie
के टाइप से मैप किया गया है.
Data Connect समझता है कि यह संबंध Movie
और MovieMetadata
के बीच है. इसलिए, वह इस संबंध को मैनेज करेगा.
दस्तावेज़ में, Data Connect के स्कीमा के बारे में ज़्यादा जानें
अपनी टेबल में डेटा जोड़ना
आईडीई एडिटर पैनल में, आपको /dataconnect/schema/schema.gql
में GraphQL टाइप के ऊपर CodeLens बटन दिखेंगे. अपने लोकल डेटाबेस में डेटा जोड़ने के लिए, डेटा जोड़ें और (लोकल) चलाएं बटन का इस्तेमाल किया जा सकता है.
Movie
और MovieMetadata
टेबल में रिकॉर्ड जोड़ने के लिए:
schema.gql
में,Movie
टाइप डिक्लेरेशन
के ऊपर मौजूद, डेटा जोड़ें बटन पर क्लिक करें.- जनरेट की गई
Movie_insert.gql
फ़ाइल में, तीन फ़ील्ड के लिए डेटा को हार्ड कोड करें. - Run (Local) बटन पर क्लिक करें.
MovieMetadata
टेबल में रिकॉर्ड जोड़ने के लिए, पिछले चरणों को दोहराएं. साथ ही, जनरेट किए गएMovieMetadata_insert
म्यूटेशन में दिए गए निर्देश के मुताबिक,movieId
फ़ील्ड में अपनी फ़िल्म काid
डालें.
डेटा जोड़े जाने की पुष्टि तुरंत करने के लिए:
schema.gql
पर वापस जाएं. इसके बाद,Movie
टाइप के ऊपर मौजूद, डेटा पढ़ें बटन पर क्लिक करें.- क्वेरी को चलाने के लिए, नतीजे के तौर पर मिली
Movie_read.gql
फ़ाइल में मौजूद Run (Local) बटन पर क्लिक करें.
दस्तावेज़ में, Data Connect म्यूटेशन के बारे में ज़्यादा जानें
क्वेरी के बारे में बताना
अब मज़ेदार काम करते हैं: अपने ऐप्लिकेशन में इस्तेमाल की जाने वाली क्वेरी तय करें. एक डेवलपर के तौर पर, आपको GraphQL क्वेरी के बजाय SQL क्वेरी लिखने की आदत होती है. इसलिए, आपको शुरुआत में यह थोड़ा अलग लग सकता है.
हालांकि, GraphQL, रॉ SQL की तुलना में ज़्यादा संक्षिप्त और टाइप-सेफ़ है. साथ ही, हमारा VS Code एक्सटेंशन, क्वेरी और म्यूटेशन, दोनों के लिए डेवलपमेंट के अनुभव को आसान बनाता है.
Gemini Code Assist का इस्तेमाल करके क्वेरी बनाने के लिए:
- VS Code के Data Connect एक्सटेंशन का साइडबार खोलने के लिए, उसके आइकॉन पर क्लिक करें.
- एआई की मदद से अपना स्कीमा और क्वेरी बनाएं पर क्लिक करें. Gemini Code Assist चैट विंडो खुलती है.
- चैट विंडो में सबसे नीचे, पक्का करें कि एजेंट मोड चालू हो.
- चैट विंडो में सबसे नीचे मौजूद चैट बॉक्स पर क्लिक करें. इसके बाद, आपको जिस तरह का ऑपरेशन करना है उसके बारे में सामान्य भाषा में जानकारी टाइप करें.
- Enter दबाएं. इसके बाद, Gemini, MCP सर्वर की वह कमांड दिखाएगा जिसे वह ऑपरेशन को डेवलप करने के लिए इस्तेमाल करेगा.
- स्वीकार करें क्लिक करें. कुछ ही देर में, सुझाई गई क्वेरी दिखेगी. क्वेरी की समीक्षा करें.
queries.gql
में कोड जोड़ने के लिए:- Gemini Code Assist के फ़ाइल अपडेट करने के लिए प्रॉम्प्ट करने का इंतज़ार करें.
- फ़ाइल में बदलाव करने के लिए, स्वीकार करें पर क्लिक करें. इसके अलावा, बदलाव लागू करने से पहले बदलाव देखें पर क्लिक करें.
CodeLens के आस-पास मौजूद बटन का इस्तेमाल करके, क्वेरी को लागू करें.
दस्तावेज़ में, Data Connect क्वेरी के बारे में ज़्यादा जानें
SDK टूल जनरेट करना और उन्हें अपने ऐप्लिकेशन में इस्तेमाल करना
IDE के बाईं ओर मौजूद पैनल में, Firebase आइकॉन पर क्लिक करके Data Connect VS Code एक्सटेंशन का यूज़र इंटरफ़ेस (यूआई) खोलें:
- ऐप्लिकेशन में एसडीके जोड़ें बटन पर क्लिक करें.
इसके बाद, एक डायलॉग बॉक्स दिखेगा. इसमें वह डायरेक्ट्री चुनें जिसमें आपके ऐप्लिकेशन का कोड मौजूद है. Data Connect एसडीके का कोड जनरेट होगा और वहां सेव हो जाएगा.
अपना ऐप्लिकेशन प्लैटफ़ॉर्म चुनें. इसके बाद, ध्यान दें कि एसडीके कोड आपकी चुनी गई डायरेक्ट्री में तुरंत जनरेट हो जाता है.
किसी ऐप्लिकेशन से अपनी क्वेरी को कॉल करने के लिए, एसडीके का इस्तेमाल करना
Data Connect ने जो एसडीके जनरेट किया है उसका इस्तेमाल करके, ListMovies
क्वेरी को कॉल किया जा सकता है. इसके बाद, Data Connect एम्युलेटर का इस्तेमाल करके, इस क्वेरी को स्थानीय तौर पर चलाया जा सकता है.
वेब
- अपने वेब ऐप्लिकेशन में Firebase जोड़ें.
अपने React ऐप्लिकेशन की मुख्य फ़ाइल में:
- जनरेट किए गए एसडीके टूल को इंपोर्ट करें
- Data Connect एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन को इंस्ट्रुमेंट करें
- Data Connect तरीकों को कॉल करें.
import React from 'react'; import ReactDOM from 'react-dom/client'; import { connectDataConnectEmulator } from 'firebase/data-connect'; // Generated queries. // Update as needed with the path to your generated SDK. import { listMovies, ListMoviesData } from '@movie-app/movies'; const dataConnect = getDataConnect(connectorConfig); connectDataConnectEmulator(dataConnect, 'localhost', 9399); function App() { const [movies, setMovies] = useState<ListMoviesData['movies']>([]); useEffect(() => { listMovies.then(res => setMovies(res.data)); }, []); return ( movies.map(movie => <h1>{movie.title}</h1>); ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
Swift
- अपने iOS ऐप्लिकेशन में Firebase जोड़ें.
जनरेट किए गए एसडीके टूल का इस्तेमाल करने के लिए, इसे Xcode में डिपेंडेंसी के तौर पर कॉन्फ़िगर करें.
Xcode के सबसे ऊपर मौजूद नेविगेशन बार में, File > Add Package Dependencies > Add Local को चुनें. इसके बाद, जनरेट की गई
Package.swift
वाला फ़ोल्डर चुनें.अपने ऐप्लिकेशन के मुख्य डेलिगेट में:
- जनरेट किए गए एसडीके टूल को इंपोर्ट करें
- Data Connect एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन को इंस्ट्रुमेंट करें
- Data Connect तरीकों को कॉल करें.
import SwiftUI import FirebaseDataConnect // Generated queries. // Update as needed with the package name of your generated SDK. import <CONNECTOR-PACKAGE-NAME> let connector = DataConnect.moviesConnector // Connect to the emulator on "127.0.0.1:9399" connector.useEmulator() // (alternatively) if you're running your emulator on non-default port: // connector.useEmulator(port: 9999) struct ListMovieView: View { @StateObject private var queryRef = connector.listMovies.ref() var body: some View { VStack { Button { Task { do { try await refresh() } catch { print("Failed to refresh: \(error)") } } } label: { Text("Refresh") } // use the query results in a view ForEach(queryRef.data?.movies ?? []) { movie in Text(movie.title) } } } @MainActor func refresh() async throws { _ = try await queryRef.execute() } struct ContentView_Previews: PreviewProvider { static var previews: some View { ListMovieView() } }
Kotlin Android
- अपने Android ऐप्लिकेशन में Firebase जोड़ें.
जनरेट किए गए SDK टूल का इस्तेमाल करने के लिए, Gradle में Data Connect को डिपेंडेंसी के तौर पर कॉन्फ़िगर करें.
अपने
app/build.gradle.kts
मेंplugins
औरdependencies
अपडेट करें.plugins { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest as of March 14, 2025. // Note, however, that the version of kotlin("plugin.serialization") must, // in general, match the version of kotlin("android"). id("com.android.application") version "8.9.0" id("com.google.gms.google-services") version "4.4.2" val kotlinVersion = "2.1.10" kotlin("android") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion } dependencies { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest versions as of March 14, 2025. implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3") // These dependencies are not strictly required, but will very likely be used // when writing modern Android applications. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("com.google.android.material:material:1.12.0") }
अपने ऐप्लिकेशन की मुख्य गतिविधि में:
- जनरेट किए गए एसडीके टूल को इंपोर्ट करें
- Data Connect एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन को इंस्ट्रुमेंट करें
- Data Connect तरीकों को कॉल करें.
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.launch private val connector = com.myapplication.MoviesConnector.instance .apply { // Connect to the emulator on "10.0.2.2:9399" (default port) dataConnect.useEmulator() // (alternatively) if you're running your emulator on non-default port: // dataConnect.useEmulator(port = 9999) } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView: TextView = findViewById(R.id.text_view) lifecycleScope.launch { lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { val result = connector.listMovies.runCatching { execute { } } val newTextViewText = result.fold( onSuccess = { val titles = it.data.movies.map { it.title } "${titles.size} movies: " + titles.joinToString(", ") }, onFailure = { "ERROR: ${it.message}" } ) textView.text = newTextViewText } } } }
Flutter
- अपने Flutter ऐप्लिकेशन में Firebase जोड़ें.
- flutterfire सीएलआई
dart pub global activate flutterfire_cli
इंस्टॉल करें. flutterfire configure
रन करें.- आपके ऐप्लिकेशन के मुख्य फ़ंक्शन में:
- जनरेट किए गए एसडीके टूल को इंपोर्ट करें
- Data Connect एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन को इंस्ट्रुमेंट करें
- Data Connect तरीकों को कॉल करें.
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';
// Generated queries.
// Update as needed with the path to your generated SDK
import 'movies_connector/movies.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
MoviesConnector.instance.dataConnect
.useDataConnectEmulator(Uri.base.host, 443, isSecure: true);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(children: [
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 200),
child: FutureBuilder(
future: MoviesConnector.instance.listMovies().execute(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemBuilder: (context, index) => Card(
child: Text(
snapshot.data!.data.movies[index].title,
)),
itemCount: snapshot.data!.data.movies.length,
);
}
return const CircularProgressIndicator();
}),
)
])));
}
}
अपने स्कीमा और क्वेरी को प्रोडक्शन में डिप्लॉय करना
ऐप्लिकेशन पर लोकल सेटअप हो जाने के बाद, अब क्लाउड पर स्कीमा और कनेक्टर डिप्लॉय किए जा सकते हैं. Cloud SQL इंस्टेंस सेट अप करने के लिए, आपके पास ब्लेज़ प्लान वाला प्रोजेक्ट होना चाहिए.
Firebase कंसोल के डेटा कनेक्ट सेक्शन पर जाएं और बिना किसी शुल्क के Cloud SQL इंस्टेंस बनाएं.
आईडीई में इंटिग्रेट किए गए टर्मिनल में,
firebase init dataconnect
चलाएं. इसके बाद, कंसोल पर अभी-अभी बनाया गया रीजन/सेवा आईडी चुनें.जब आपको "File dataconnect/dataconnect.yaml already exists, Overwrite?" का मैसेज दिखे, तब "Y" चुनें.
IDE विंडो में, VS Code Extension के यूज़र इंटरफ़ेस (यूआई) में, Deploy to production बटन पर क्लिक करें.
लागू करने के बाद, Firebase कंसोल पर जाएं. यहां पुष्टि करें कि स्कीमा, कार्रवाइयां, और डेटा क्लाउड पर अपलोड हो गया है. आपको स्कीमा देखने और कंसोल पर कार्रवाइयां करने का विकल्प मिलना चाहिए. Cloud SQL for PostgreSQL इंस्टेंस को, जनरेट किए गए स्कीमा और डेटा के साथ अपडेट किया जाएगा.
अगले चरण
डिप्लॉय किए गए प्रोजेक्ट की समीक्षा करें और अन्य टूल के बारे में जानें:
- अपने डेटाबेस में डेटा जोड़ें, अपने स्कीमा की जांच करें और उनमें बदलाव करें. साथ ही, Firebase कंसोल में, Data Connect सेवा पर नज़र रखें.
दस्तावेज़ में जाकर ज़्यादा जानकारी पाएं. उदाहरण के लिए, आपने क्विकस्टार्ट पूरा कर लिया है, इसलिए:
- स्कीमा, क्वेरी, और म्यूटेशन जनरेट करने में आपकी मदद करने वाले एआई टूल और दिशा-निर्देशों के बारे में ज़्यादा जानें. एआई की मदद से कोडिंग करने की गाइड में, इन विषयों के बारे में बताया गया है: अपने आईडीई के साथ हमारे एमसीपी सर्वर को सेट अप और इस्तेमाल करने का तरीका और प्रॉम्प्ट लिखने के सबसे सही तरीके.
- स्कीमा, क्वेरी, और म्यूटेशन डेवलपमेंट के बारे में ज़्यादा जानें
- वेब, Android, iOS, और Flutter के लिए, क्लाइंट एसडीके जनरेट करने और क्लाइंट कोड से क्वेरी और म्यूटेशन कॉल करने के बारे में जानें.