डेटा कनेक्ट के साथ एडमिन SDK टूल का इस्तेमाल करना

Firebase Admin SDK, सर्वर लाइब्रेरी का एक सेट है. इससे आपको खास अधिकारों वाले एनवायरमेंट से Firebase के साथ इंटरैक्ट करने की सुविधा मिलती है. इससे बल्क डेटा मैनेजमेंट और खास सुविधाओं के साथ अन्य कार्रवाइयों के लिए, Firebase Data Connect सेवा पर क्वेरी और म्यूटेशन जैसी कार्रवाइयां की जा सकती हैं.

Admin SDK आपको पढ़ने/लिखने और रीड-ओनली मोड, दोनों में कार्रवाइयों को कॉल करने के लिए एक एपीआई उपलब्ध कराता है. सिर्फ़ पढ़ने की अनुमति वाले ऑपरेशन की मदद से, एडमिन के ऐसे फ़ंक्शन लागू किए जा सकते हैं जिनसे आपके डेटाबेस में मौजूद डेटा में बदलाव नहीं होता.

Admin SDK सेटअप करना

अपने सर्वर पर Firebase Data Connect का इस्तेमाल शुरू करने के लिए, आपको पहले Node.js के लिए Admin SDK को इंस्टॉल और सेट अप करना होगा.

अपनी स्क्रिप्ट में Admin SDK टूल को शुरू करना

SDK टूल को शुरू करने के लिए, Data Connect एक्सटेंशन इंपोर्ट करें और अपने प्रोजेक्ट के सेवा आईडी और जगह की जानकारी दें.


import { initializeApp } from 'firebase-admin/app';
import { getDataConnect } from 'firebase-admin/data-connect';

// If you'd like to use OAuth2 flows and other credentials to log in,
// visit https://firebase.google.com/docs/admin/setup#initialize-sdk
// for alternative ways to initialize the SDK.

const app = initializeApp();

const dataConnect = getDataConnect({
    serviceId: 'serviceId',
    location: 'us-west2'
});

Admin SDK के साथ इस्तेमाल करने के लिए क्वेरी और म्यूटेशन डिज़ाइन करना

इन बातों को ध्यान में रखते हुए, Data Connect से जुड़ी कार्रवाइयों की जांच करने के लिए, Admin SDK का इस्तेमाल किया जा सकता है.

SDK टूल और @auth(level: NO_ACCESS) ऑपरेशन डायरेक्टिव को समझना

Admin SDK, खास सुविधाओं के साथ काम करता है. इसलिए, यह आपकी सभी क्वेरी और म्यूटेशन को लागू कर सकता है. भले ही, @auth निर्देशों का इस्तेमाल करके, ऐक्सेस लेवल सेट किए गए हों. इनमें NO_ACCESS लेवल भी शामिल है.

अगर क्लाइंट ऑपरेशन के साथ-साथ, एडमिन स्क्रिप्ट में इंपोर्ट करने के लिए, .gql सोर्स फ़ाइलों में एडमिन क्वेरी और म्यूटेशन को व्यवस्थित किया जाता है, तो Firebase का सुझाव है कि आप एडमिन ऑपरेशन को अनुमति ऐक्सेस लेवल के बिना मार्क करें. इसके अलावा, उन्हें NO_ACCESS के तौर पर सेट करें. दोनों ही मामलों में, इससे क्लाइंट या अन्य बिना विशेषाधिकार वाले कॉन्टेक्स्ट से ऐसे ऑपरेशन को पूरा होने से रोका जाता है.

Data Connect एम्युलेटर के साथ SDK टूल का इस्तेमाल करें

प्रोटोटाइप और टेस्ट एनवायरमेंट में, लोकल डेटा पर डेटा सीडिंग और अन्य कार्रवाइयां करने के लिए, यह सुविधा मददगार हो सकती है. Admin SDK की मदद से, वर्कफ़्लो को आसान बनाया जा सकता है. ऐसा इसलिए, क्योंकि यह स्थानीय फ़्लो के लिए पुष्टि और अनुमति को अनदेखा करता है.

DATA_CONNECT_EMULATOR_HOST एनवायरमेंट वैरिएबल सेट होने पर, Firebase एडमिन SDK टूल अपने-आप Data Connect एम्युलेटर से कनेक्ट हो जाते हैं:

export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"

ज़्यादा जानकारी के लिए, ये देखें:

इस्तेमाल के सामान्य उदाहरण लागू करना

Admin SDK, आपके अहम डेटा पर खास अधिकारों वाली कार्रवाइयों के लिए दिया जाता है.

Data Connect के एपीआई में, रीड-राइट executeGraphql इंटरफ़ेस और रीड-ओनली executeGraphqlRead इंटरफ़ेस होता है.

उपयोगकर्ता का डेटा मैनेज करना

Admin SDK का इस्तेमाल, उपयोगकर्ता के डेटा को मैनेज करने के लिए किया जाता है.

interface UserData {
  user: {
    id: string;
    name: string;
  };
}

export interface UserVariables {
  id: string;
}

const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };

// user can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";

//executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);

//executeGraphqlRead (similar to above but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);

// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }

आगे क्या करना है?