Firebase SQL Connect क्लाइंट SDK टूल की मदद से, सर्वर-साइड क्वेरी और म्यूटेशन को सीधे Firebase ऐप्लिकेशन से कॉल किया जा सकता है. सेवा पर डिप्लॉय किए जाने वाले स्कीमा, क्वेरी, और म्यूटेशन डिज़ाइन करते समय, एक कस्टम क्लाइंट SDK टूल जनरेट किया जाता है. SQL Connect इसके बाद, इस SDK टूल के तरीकों को अपने क्लाइंट लॉजिक में इंटिग्रेट किया जाता है.
जैसा कि हमने कहीं और बताया है, यह ध्यान रखना ज़रूरी है कि SQL Connect क्वेरी और म्यूटेशन, क्लाइंट कोड से सबमिट नहीं किए जाते. इन्हें सर्वर पर एक्ज़ीक्यूट किया जाता है. इसके बजाय, डिप्लॉय किए जाने पर, SQL Connect कार्रवाइयों को सर्वर पर सेव किया जाता है. जैसे, Cloud Functions को सेव किया जाता है. इसका मतलब है कि आपको क्लाइंट-साइड में किए गए बदलावों को डिप्लॉय करना होगा, ताकि मौजूदा उपयोगकर्ताओं को कोई समस्या न हो. उदाहरण के लिए, ऐप्लिकेशन के पुराने वर्शन इस्तेमाल करने वाले उपयोगकर्ताओं को.
इसलिए, SQL Connect आपको डेवलपर एनवायरमेंट और टूलिंग उपलब्ध कराता है. इसकी मदद से, सर्वर पर डिप्लॉय किए गए स्कीमा, क्वेरी, और म्यूटेशन का प्रोटोटाइप बनाया जा सकता है. प्रोटोटाइप बनाते समय, यह क्लाइंट-साइड SDK टूल अपने-आप जनरेट करता है.
अपनी सेवा और क्लाइंट ऐप्लिकेशन में अपडेट करने के बाद, सर्वर-साइड और क्लाइंट-साइड, दोनों के अपडेट डिप्लॉय किए जा सकते हैं.
क्लाइंट डेवलपमेंट का वर्कफ़्लो क्या है?
शुरू करें लेख में, आपको के लिए डेवलपमेंट के पूरे फ़्लो के बारे में बताया गया था.SQL Connect इस गाइड में, आपको अपने स्कीमा से वेब SDK टूल जनरेट करने और क्लाइंट क्वेरी और म्यूटेशन के साथ काम करने के बारे में ज़्यादा जानकारी मिलेगी.
संक्षेप में, जनरेट किए गए वेब SDK टूल को अपने क्लाइंट ऐप्लिकेशन में इस्तेमाल करने के लिए, आपको ये ज़रूरी शर्तें पूरी करनी होंगी:
- अपने वेब ऐप्लिकेशन में Firebase जोड़ें.
इसके बाद:
- अपने ऐप्लिकेशन का स्कीमा डेवलप करें.
- JavaScript SDK टूल की मदद से, अपने क्लाइंट कोड को शुरू करें.
- एसडीके टूल जनरेट करने की सुविधा सेट अप करें:
- SQL Connect VS Code एक्सटेंशन में मौजूद, ऐप्लिकेशन में एसडीके जोड़ें बटन की मदद से.
- JavaScript SDK टूल के लिए, अपने
connector.yamlको अपडेट करके.
- JavaScript SDK टूल की मदद से, लाइब्रेरी और जनरेट किए गए कोड इंपोर्ट करें.
- JavaScript SDK टूल की मदद से, क्वेरी और म्यूटेशन के लिए कॉल लागू करें.
- JavaScript SDK टूल की मदद से, SQL Connect एम्युलेटर सेट अप करके टेस्ट करें.
Firebase JavaScript SDK टूल की मदद से, क्लाइंट कोड लागू करना
इस सेक्शन में, Firebase JavaScript SDK टूल का इस्तेमाल करके, क्लाइंट लागू करने का तरीका बताया गया है.
अगर React या Angular का इस्तेमाल किया जा रहा है, तो फ़्रेमवर्क के लिए SDK टूल जनरेट करनेSQL Connect के बारे में, सेटअप के अन्य निर्देश और ज़्यादा दस्तावेज़ों के लिंक देखें.
अपना ऐप्लिकेशन शुरू करना
सबसे पहले, Firebase के स्टैंडर्ड क्रम का इस्तेमाल करके, अपना ऐप्लिकेशन शुरू करें.
initializeApp({...});
जनरेट किया गया JavaScript SDK टूल इंस्टॉल करना
अपने ऐप्लिकेशन में, SQL Connect से जनरेट किए गए SDK टूल सेट अप करने के लिए, Firebase का इस्तेमाल करें.
init कमांड को मौजूदा फ़ोल्डर में मौजूद सभी ऐप्लिकेशन का पता लगाना चाहिए. साथ ही, जनरेट किए गए SDK टूल को अपने-आप इंस्टॉल करना चाहिए.
firebase init dataconnect:sdk
अपने ऐप्लिकेशन को SQL Connect सेवा से कनेक्ट करें.
import { connectDataConnectEmulator } from 'firebase/data-connect';
import { connectorConfig } from '@dataconnect/generated';
const dataConnect = getDataConnect(connectorConfig);
// [Optionally] Configure the SDK to use Data Connect local emulator.
connectDataConnectEmulator(dataConnect, 'localhost', 9399);
प्रोटोटाइप बनाते समय, SDK टूल अपडेट करना
अगर SQL Connect VS Code एक्सटेंशन इंस्टॉल किया गया है, तो यह जनरेट किए गए SDK टूल को हमेशा अपडेट रखेगा.
अगर SQL Connect VS Code एक्सटेंशन का इस्तेमाल नहीं किया जाता है, तो जनरेट किए गए SDK टूल को अपडेट रखने के लिए, Firebase CLI का इस्तेमाल किया जा सकता है.
firebase dataconnect:sdk:generate --watchबिल्ड पाइपलाइन में SDK टूल जनरेट करना
CI/CD बिल्ड प्रोसेस में, SQL Connect SDK टूल जनरेट करने के लिए, Firebase CLI का इस्तेमाल किया जा सकता है.
firebase dataconnect:sdk:generateलाइब्रेरी इंपोर्ट करना
अपने क्लाइंट कोड को शुरू करने के लिए, इंपोर्ट के दो सेट की ज़रूरत होती है: सामान्य SQL Connect इंपोर्ट और खास तौर पर जनरेट किए गए SDK टूल के इंपोर्ट.
सामान्य इंपोर्ट में शामिल ConnectorConfig ऑब्जेक्ट पर ध्यान दें.
// general imports
import { ConnectorConfig, DataConnect, getDataConnect, QueryRef, MutationRef, QueryPromise, MutationPromise } from 'firebase/data-connect';
// generated queries and mutations from SDK
import { listMovies, ListMoviesResponse, createMovie, connectorConfig } from '@dataconnect/generated';
JavaScript SDK टूल से क्वेरी इस्तेमाल करना
जनरेट किए गए कोड में, पहले से तय किए गए क्वेरी रेफ़रंस शामिल होंगे. आपको बस उन्हें इंपोर्ट करना होगा और उन पर एक्ज़ीक्यूट को कॉल करना होगा.
import { executeQuery } from 'firebase/data-connect';
import { listMoviesRef } from '@dataconnect/generated';
const ref = listMoviesRef();
const { data } = await executeQuery(ref);
console.log(data.movies);
एसडीके टूल के क्वेरी के तरीके कॉल करना
यहां इन ऐक्शन शॉर्टकट फ़ंक्शन का इस्तेमाल करने का एक उदाहरण दिया गया है:
import { listMovies } from '@dataconnect/generated';
function onBtnClick() {
// This will call the generated JS from the CLI and then make an HTTP request out
// to the server.
listMovies().then(data => showInUI(data)); // == executeQuery(listMoviesRef);
}
बदलावों की सदस्यता लेना
से रीयल-टाइम अपडेट पाना लेख देखेंSQL Connect.
गिनती वाले फ़ील्ड में होने वाले बदलावों को मैनेज करना
किसी ऐप्लिकेशन के स्कीमा में गिनती शामिल हो सकती है, जिन्हें आपकी GraphQL क्वेरी से ऐक्सेस किया जा सकता है.
ऐप्लिकेशन के डिज़ाइन में बदलाव होने पर, गिनती की नई वैल्यू जोड़ी जा सकती हैं. उदाहरण के लिए, मान लें कि ऐप्लिकेशन के लाइफ़साइकल में बाद में, आपने AspectRatio गिनती में FULLSCREEN वैल्यू जोड़ने का फ़ैसला किया.
SQL Connect वर्कफ़्लो में, क्वेरी और SDK टूल अपडेट करने के लिए, स्थानीय डेवलपमेंट टूलिंग का इस्तेमाल किया जा सकता है.
हालांकि, अपने क्लाइंट का अपडेट किया गया वर्शन रिलीज़ करने से पहले, डिप्लॉय किए गए पुराने क्लाइंट में गड़बड़ी हो सकती है.
लचीले तरीके से लागू करने का उदाहरण
गिनती की वैल्यू के लिए, हमेशा default स्टेटमेंट में switch ब्रांच या
गिनती की वैल्यू की तुलना करने वाले if/else if ब्लॉक में else ब्रांच जोड़ें.
JavaScript/TypeScript भाषा में यह ज़रूरी नहीं है, लेकिन क्लाइंट कोड को मज़बूत बनाने का यह तरीका है. ऐसा तब किया जाता है, जब गिनती की नई वैल्यू जोड़ी जाती हैं.
const queryResult = await getOldestMovie();
if (queryResult.data) {
// we can use a switch statement's "default" case to check for unexpected values
const oldestMovieAspectRatio = queryResult.data.originalAspectRatio;
switch (oldestMovieAspectRatio) {
case AspectRatio.ACADEMY:
case AspectRatio.WIDESCREEN:
case AspectRatio.ANAMORPHIC:
console.log('This movie was filmed in Academy, widescreen or anamorphic aspect ratio!');
break;
default:
// the default case will catch FULLSCREEN, UNAVAILABLE or _UNKNOWN
// it will also catch unexpected values the SDK isn't aware of, such as CINEMASCOPE
console.log('This movie was was NOT filmed in Academy, widescreen or anamorphic.');
break;
}
// alternatively, we can check to see if the returned enum value is a known value
if (!Object.values(AspectRatio).includes(oldestMovieAspectRatio)) {
console.log(`Unrecognized aspect ratio: ${oldestAspectRatio}`);
}
} else {
console.log("no movies found!");
}
JavaScript SDK टूल से म्यूटेशन इस्तेमाल करना
म्यूटेशन को क्वेरी की तरह ही ऐक्सेस किया जा सकता है.
import { executeMutation } from 'firebase/data-connect';
import { createMovieRef } from '@dataconnect/generated';
const { data } = await executeMutation(createMovieRef({ movie: 'Empire Strikes Back' }));
SQL Connect एम्युलेटर से कनेक्ट करना
इसके अलावा, एम्युलेटर से कनेक्ट करने के लिए आप
connectDataConnectEmulator को कॉल कर सकते हैं और फिर SQL Connect
इंस्टेंस पास कर सकते हैं. जैसे:
import { connectDataConnectEmulator } from 'firebase/data-connect';
import { connectorConfig } from '@dataconnect/generated';
const dataConnect = getDataConnect(connectorConfig);
connectDataConnectEmulator(dataConnect, 'localhost', 9399);`
// Make calls from your app
प्रॉडक्शन रिसॉर्स पर स्विच करने के लिए, एम्युलेटर से कनेक्ट करने वाली लाइनों को टिप्पणी के तौर पर मार्क करें.
क्लाइंट-साइड कैशिंग की सुविधा चालू करना
SQL Connect में क्लाइंट-साइड कैशिंग की सुविधा उपलब्ध है. इसे चालू करने के लिए, आप connector.yaml फ़ाइल में बदलाव कर सकते हैं. इस सुविधा के चालू होने पर, जनरेट किए गए क्लाइंट SDK टूल, क्वेरी के जवाबों को स्थानीय तौर पर कैश करेंगे. इससे आपके ऐप्लिकेशन के डेटाबेस के अनुरोधों की संख्या कम हो सकती है. साथ ही, नेटवर्क की उपलब्धता में रुकावट आने पर भी, आपके ऐप्लिकेशन के डेटाबेस पर निर्भर हिस्से काम कर सकते हैं.
क्लाइंट-साइड कैशिंग की सुविधा चालू करने के लिए, अपने कनेक्टर कॉन्फ़िगरेशन में क्लाइंट कैशिंग कॉन्फ़िगरेशन जोड़ें:
generate:
javascriptSdk:
outputDir: ../web/
package: "@dataconnect/generated"
clientCache:
maxAge: 5s
storage: memory
इस कॉन्फ़िगरेशन में दो पैरामीटर होते हैं. दोनों ज़रूरी नहीं हैं:
maxAge: कैश किया गया जवाब, क्लाइंट SDK टूल के नई वैल्यू फ़ेच करने से पहले, ज़्यादा से ज़्यादा कितने समय तक कैश में रह सकता है. उदाहरण: "0", "30s", "1h30m".maxAgeकी डिफ़ॉल्ट वैल्यू0होती है. इसका मतलब है कि जवाब कैश किए जाते हैं, लेकिन क्लाइंट SDK टूल हमेशा नई वैल्यू फ़ेच करेगा. कैश की गई वैल्यू का इस्तेमाल सिर्फ़ तब किया जाएगा, जबexecuteQuery()औरsubscribe()से मिले शुरुआती नतीजे के लिए,CACHE_ONLYतय किया गया हो.storage: क्लाइंट SDK टूल कोpersistentस्टोरेज याmemoryमें जवाब कैश करने के लिए कॉन्फ़िगर किया जा सकता है.persistentस्टोरेज में कैश किए गए नतीजे, ऐप्लिकेशन को रीस्टार्ट करने पर भी बने रहेंगे. वेब SDK टूल में, सिर्फ़memoryस्टोरेज इस्तेमाल किया जा सकता है.
अपने कनेक्टर के कैशिंग कॉन्फ़िगरेशन को अपडेट करने के बाद, अपने क्लाइंट SDK टूल को फिर से जनरेट करें और अपने ऐप्लिकेशन को फिर से बनाएं. ऐसा करने के बाद, executeQuery() और subscribe(), जवाबों को कैश करेंगे. साथ ही, आपके कॉन्फ़िगर की गई नीति के मुताबिक, कैश की गई वैल्यू का इस्तेमाल करेंगे. आम तौर पर, यह प्रोसेस अपने-आप होती है. इसके लिए, आपको कोई और कार्रवाई करने की ज़रूरत नहीं होती. हालांकि, इन बातों का ध्यान रखें:
executeQuery()का डिफ़ॉल्ट तरीका ऊपर बताया गया है: अगर किसी क्वेरी के लिए कोई नतीजा कैश किया जाता है और कैश की गई वैल्यू,maxAgeसे पुरानी नहीं है, तो कैश की गई वैल्यू का इस्तेमाल करें. इस डिफ़ॉल्ट तरीके कोPREFER_CACHEनीति कहा जाता है.executeQuery()के अलग-अलग कॉल के लिए, यह भी तय किया जा सकता है कि सिर्फ़ कैश की गई वैल्यू (CACHE_ONLY) दिखाई जाएं या सर्वर से बिना शर्त नई वैल्यू (SERVER_ONLY) फ़ेच की जाएं.await executeQuery(queryRef, QueryFetchPolicy.CACHE_ONLY);await executeQuery(queryRef, QueryFetchPolicy.SERVER_ONLY);subscribe()को कॉल करने पर, अगर कैश किया गया कॉन्टेंट मौजूद है, तो यह हमेशा तुरंत उसे दिखाएगा. भले ही,maxAgeसेटिंग कुछ भी हो.executeQuery()के बाद के कॉल, कॉन्फ़िगर किए गएmaxAgeके मुताबिक, लिसनर को सूचनाएं भेजेंगे.
एसडीके टूल में डेटा टाइप
SQL Connect सर्वर, सामान्य GraphQL डेटा टाइप दिखाता है. इन्हें SDK टूल में इस तरह दिखाया जाता है.
| SQL Connect टाइप | TypeScript |
|---|---|
| टाइमस्टैम्प | स्ट्रिंग |
| तारीख | स्ट्रिंग |
| यूयूआईडी | स्ट्रिंग |
| Int64 | स्ट्रिंग |
| डबल-साइज़ बेड | संख्या |
| फ़्लोट | संख्या |
TanStack की मदद से, React और Angular SDK टूल जनरेट करना
Firebase SQL Connect React और Angular के लिए हुक के साथ जनरेट किया गया SDK टूल उपलब्ध कराता है. इसके लिए, हमारे पार्टनर Invertase, TanStack Query Firebase की लाइब्रेरी का इस्तेमाल किया जाता है.
इस लाइब्रेरी में हुक का एक सेट होता है. इसकी मदद से, आपके ऐप्लिकेशन में Firebase के साथ एसिंक्रोनस टास्क को आसानी से मैनेज किया जा सकता है.
TanStack में क्लाइंट-साइड कैशिंग और रीयल-टाइम सदस्यताओं की अपनी सुविधा होती है. यह SQL Connect's की बिल्ट-इन रीयल-टाइम सहायता के साथ काम कर सकती है. हालांकि, इसमें कुछ समस्याएं आ सकती हैं. हमारा सुझाव है कि आप TanStack पर आधारित बाइंडिंग या SQL Connect's की बिल्ट-इन रीयल-टाइम सहायता में से किसी एक का इस्तेमाल करें. दोनों का नहीं.
ध्यान दें कि SQL Connect's की रीयल-टाइम सुविधा, TanStack बाइंडिंग के मुकाबले ज़्यादा फ़ायदेमंद है:
- नॉर्मलाइज़्ड कैशिंग: SQL Connect में नॉर्मलाइज़्ड कैशिंग की सुविधा है, जिससे डेटा की सुसंगतता बेहतर होती है. साथ ही, मेमोरी और नेटवर्क की परफ़ॉर्मेंस भी बेहतर होती है क्वेरी-लेवल कैशिंग के मुकाबले. नॉर्मलाइज़्ड कैशिंग की मदद से, अगर आपके ऐप्लिकेशन के किसी एक हिस्से में कोई इकाई अपडेट होती है, तो वह इकाई, ऐप्लिकेशन के उन अन्य हिस्सों में भी अपडेट हो जाएगी जहां उसका इस्तेमाल किया जाता है.
- रिमोट इनवैलिडेशन: SQL Connect सदस्यता लेने वाले सभी डिवाइसों पर, कैश की गई इकाइयों को रिमोट तरीके से इनवैलिडेट कर सकता है.
अपना ऐप्लिकेशन शुरू करना
सबसे पहले, किसी भी Firebase वेब ऐप्लिकेशन की तरह, Firebase के स्टैंडर्ड क्रम का इस्तेमाल करके, अपना ऐप्लिकेशन शुरू करें.
initializeApp({...});
TanStack Query Firebase के पैकेज इंस्टॉल करना
अपने प्रोजेक्ट में, TanStack Query के पैकेज इंस्टॉल करें.
React
npm i --save @tanstack/react-query @tanstack-query-firebase/react
npm i --save firebase@latest # Note: React has a peer dependency on ^11.3.0
Angular
ng add @angular/fire
अपना React या Angular SDK टूल जनरेट करना
अगर आपने अपने प्रोजेक्ट में React या Angular को अभी-अभी जोड़ा है, तो जनरेट किए गए SDK टूल को फिर से कॉन्फ़िगर करने के लिए, firebase init dataconnect:sdk को फिर से चलाएं. इससे, फ़्रेमवर्क की अतिरिक्त बाइंडिंग शामिल की जा सकेंगी.
लाइब्रेरी इंपोर्ट करना
अपने React या Angular क्लाइंट कोड को शुरू करने के लिए, इंपोर्ट के चार सेट की ज़रूरत होती है: सामान्य SQL Connect इंपोर्ट, सामान्य TanStack इंपोर्ट, और आपके JS और React से जनरेट किए गए SDK टूल के लिए खास इंपोर्ट.
सामान्य इंपोर्ट में शामिल ConnectorConfig टाइप पर ध्यान दें.
React
// general imports
import { ConnectorConfig, DataConnect, getDataConnect, QueryRef, MutationRef, QueryPromise, MutationPromise } from 'firebase/data-connect';
// TanStack Query-related functions
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
// generated queries and mutations from SDK
import { ListMoviesResponse, connectorConfig } from '@dataconnect/generated';
// generated React hooks from SDK
import { useListAllMovies, useCreateMovie } from "@dataconnect/generated/react";
Angular
// general imports
import { ConnectorConfig, DataConnect, getDataConnect, QueryRef, MutationRef, QueryPromise, MutationPromise } from 'firebase/data-connect';
// TanStack Query-related functions
import { provideTanStackQuery, QueryClient } from "@tanstack/angular-query-experimental";
// generated queries and mutations from SDK
import { ListMoviesResponse, connectorConfig } from '@dataconnect/generated';
// generated React hooks from SDK
import { injectListAllMovies, injectCreateMovie } from "@dataconnect/generated/angular";
अपने React या Angular क्लाइंट में क्वेरी और म्यूटेशन इस्तेमाल करना
सेटअप पूरा होने के बाद, जनरेट किए गए SDK टूल के तरीकों को शामिल किया जा सकता है.
यहां दिए गए स्निपेट में, जनरेट किए गए SDK टूल से, use-प्रीफ़िक्स वाला तरीका useListAllMovies
React के लिए और inject-प्रीफ़िक्स वाला तरीका injectListAllMovies Angular के लिए, दोनों
देखें.
React
जनरेट किए गए SDK टूल में, क्वेरी और म्यूटेशन, दोनों के लिए ऐसी सभी कार्रवाइयां, TanStackQuery बाइंडिंग को कॉल करती हैं:
- क्वेरी, TanStack
useDataConnectQueryहुक को कॉल करती हैं और उसे वापस करती हैं - म्यूटेशन, TanStack
useDataConnectMutationहुक को कॉल करते हैं और उसे वापस करते हैं
import { useListAllMovies } from '@dataconnect/generated/react';
function MyComponent() {
const { isLoading, data, error } = useListAllMovies();
if(isLoading) {
return <div>Loading...</div>
}
if(error) {
return <div> An Error Occurred: {error} </div>
}
}
// App.tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import MyComponent from './my-component';
function App() {
const queryClient = new QueryClient();
return <QueryClientProvider client={queryClient}>
<MyComponent />
</QueryClientProvider>
}
Angular
import { injectAllMovies, connectorConfig } from '@dataconnect/generated/angular';
import { provideDataConnect, getDataConnect } from '@angular/fire/data-connect';
import { provideTanStackQuery, QueryClient } from "@tanstack/angular-query-experimental";
const queryClient = new QueryClient();
...
providers: [
...
provideTanStackQuery(queryClient),
provideDataConnect(() => {
const dc = getDataConnect(connectorConfig);
return dc;
})
]
React और Angular के साथ, अपने-आप रीलोड होने वाली क्वेरी इस्तेमाल करना
डेटा में बदलाव होने पर, क्वेरी को अपने-आप रीलोड होने के लिए कॉन्फ़िगर किया जा सकता है.
React
export class MovieListComponent {
movies = useListAllMovies();
}
export class AddPostComponent {
const mutation = useCreateMovie({ invalidate: [listAllMoviesRef()] });
addMovie() {
// The following will automatically cause TanStack to reload its listAllMovies query
mutation.mutate({ title: 'The Matrix });
}
}
Angular
// class
export class MovieListComponent {
movies = injectListAllMovies();
}
// template
@if (movies.isPending()) {
Loading...
}
@if (movies.error()) {
An error has occurred: {{ movies.error() }}
}
@if (movies.data(); as data) {
@for (movie of data.movies; track movie.id) {
<mat-card appearance="outlined">
<mat-card-content>{{movie.description}}</mat-card-content>
</mat-card>
} @empty {
<h2>No items!</h2>
}
}
SQL Connect एम्युलेटर से कनेक्ट करना
इसके अलावा, connectDataConnectEmulator को कॉल करके और फिर जनरेट किए गए हुक में SQL Connect
इंस्टेंस पास करके, एम्युलेटर से कनेक्ट किया जा सकता है. जैसे:
React
import { getDataConnect, connectDataConnectEmulator } from 'firebase/data-connect';
import { connectorConfig } from '@dataconnect/generated';
import { useListAllMovies } from '@dataconnect/generated/react';
const dc = getDataConnect(connectorConfig);
connectDataConnectEmulator(dc, 'localhost', 9399);
class AppComponent() {
...
const { isLoading, data, error } = useListAllMovies(dc);
...
}
Angular
// app.config.ts
import { provideDataConnect } from '@angular/fire/data-connect';
import { getDataConnect, connectDataConnectEmulator } from 'firebase/data-connect';
provideDataConnect(() => {
const dc = getDataConnect(connectorConfig);
connectDataConnectEmulator(dc, 'localhost', 9399);
return dc;
}),
प्रॉडक्शन रिसॉर्स पर स्विच करने के लिए, एम्युलेटर से कनेक्ट करने वाली लाइनों को टिप्पणी के तौर पर मार्क करें.
प्रोटोटाइप बनाते समय, SDK टूल अपडेट करना
अगर SQL Connect VS Code एक्सटेंशन इंस्टॉल किया गया है, तो यह जनरेट किए गए SDK टूल को हमेशा अपडेट रखेगा.
अगर SQL Connect VS Code एक्सटेंशन का इस्तेमाल नहीं किया जाता है, तो जनरेट किए गए SDK टूल को अपडेट रखने के लिए, Firebase CLI का इस्तेमाल किया जा सकता है.
firebase dataconnect:sdk:generate --watchबिल्ड पाइपलाइन में SDK टूल जनरेट करना
CI/CD बिल्ड प्रोसेस में, SQL Connect SDK टूल जनरेट करने के लिए, Firebase CLI का इस्तेमाल किया जा सकता है.
firebase dataconnect:sdk:generate