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

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

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

एडमिन SDK टूल का सेटअप

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

अपनी स्क्रिप्ट में 'एडमिन 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 के साथ इस्तेमाल करने के लिए क्वेरी और म्यूटेशन डिज़ाइन करें

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

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

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

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

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

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

DATA_CONNECT_EMULATOR_HOST एनवायरमेंट वैरिएबल सेट होने पर, Firebase Admin 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" } } }

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