एक्सटेंशन पब्लिशर की खास जानकारी

Firebase एक्सटेंशन, एचटीटीपी अनुरोधों या Firebase और Google के अन्य प्रॉडक्ट से ट्रिगर होने वाले इवेंट के जवाब में, कोई खास टास्क या टास्क का सेट पूरा करता है. जैसे, Firebase क्लाउड से मैसेज, Cloud Firestore या Pub/Sub.

Firebase Extensions Hub में, निजी इस्तेमाल के लिए अपना एक्सटेंशन बनाया जा सकता है या इसे दुनिया भर के लोगों के साथ शेयर किया जा सकता है. उदाहरण के लिए, आपका एक्सटेंशन कोई ऐसा खास टास्क पूरा कर सकता है जिसकी आपके ऐप्लिकेशन को नियमित तौर पर ज़रूरत होती है. इसके अलावा, यह आपकी कंपनी के किसी एपीआई को ऐक्सेस करना आसान बना सकता है. अपना एक्सटेंशन बनाने के बाद, इसे दूसरों के साथ शेयर किया जा सकता है. वे उपयोगकर्ता, अपने Firebase प्रोजेक्ट में इस्तेमाल करने के लिए एक्सटेंशन को इंस्टॉल और कॉन्फ़िगर कर सकते हैं.

एक्सटेंशन का स्ट्रक्चर

एक्सटेंशन को तीन मुख्य कॉम्पोनेंट से मिलकर बना माना जा सकता है:

  • JavaScript या TypeScript में Cloud Functions का कोड
  • मेटाडेटा, जिसमें आपके एक्सटेंशन के बारे में जानकारी होती है
  • डॉक्यूमेंटेशन, ताकि आपके उपयोगकर्ता आपके एक्सटेंशन को कॉन्फ़िगर और इस्तेमाल कर सकें

एक्सटेंशन डेवलप करने के लिए, इन कॉम्पोनेंट को इस स्ट्रक्चर में इकट्ठा करें:

example-extension
├── functions
│   ├── integration-tests
│   │   ├── extensions
│   │   │   └── example-extension.env
│   │   ├── firebase.json
│   │   └── integration-test.spec.js
│   ├── index.js
│   └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
  • functions डायरेक्ट्री में, JavaScript या TypeScript में Cloud Functions का कोड होता है. यह वह कोड है जो Firebase और Google की सेवाओं से ट्रिगर होने वाले इवेंट के जवाब में, एक्सटेंशन के टास्क पूरे करता है.
  • extension.yaml फ़ाइल में, आपके एक्सटेंशन के बारे में मेटाडेटा होता है. जैसे, इसके ट्रिगर और IAM ऐक्सेस रोल. इसके अलावा, इसमें वे पैरामीटर भी शामिल होते हैं जिन्हें उपयोगकर्ता कॉन्फ़िगर कर सकते हैं.
  • PREINSTALL, POSTINSTALL, और CHANGELOG फ़ाइलें, कम से कम वह दस्तावेज़ हैं जो आपके एक्सटेंशन में होने चाहिए. इन फ़ाइलों से, आपके उपयोगकर्ताओं को यह जानने में मदद मिलती है कि आपका एक्सटेंशन क्या करता है, इसका इस्तेमाल कैसे किया जाता है, और आपने इसमें कौनसे अपडेट किए हैं. आपको एक आइकॉन भी देना चाहिए, ताकि उपयोगकर्ता आपके एक्सटेंशन को पहचान सकें. Firebase कंसोल, Firebase CLI, और Extensions Hub, उपयोगकर्ताओं के आपके एक्सटेंशन को एक्सप्लोर करने, इंस्टॉल करने, और मैनेज करने पर इन फ़ाइलों का कॉन्टेंट दिखाते हैं.

अपना एक्सटेंशन बनाने के बाद, इसे किसी प्रोजेक्ट में इंस्टॉल करने या Extensions Hub पर पब्लिश करने के लिए, Firebase CLI का इस्तेमाल किया जा सकता है. Extensions Hub पर, कोई भी व्यक्ति आपके एक्सटेंशन को ढूंढ सकता है और अपने प्रोजेक्ट में इंस्टॉल कर सकता है.

मेरा एक्सटेंशन किन प्रॉडक्ट के साथ इंटरैक्ट कर सकता है?

Firebase एक्सटेंशन, Cloud Functions का इस्तेमाल करके काम करता है. इसलिए, इंटिग्रेशन के बारे में इन दो सवालों के जवाब दिए जा सकते हैं: किन प्रॉडक्ट से मेरे एक्सटेंशन के फ़ंक्शन ट्रिगर किए जा सकते हैं? और ट्रिगर होने के बाद, मेरे एक्सटेंशन के फ़ंक्शन किन प्रॉडक्ट के साथ इंटरैक्ट कर सकते हैं?

फ़ंक्शन ट्रिगर करने के लिए उपलब्ध सेवाएं

मैन्युअल ट्रिगर

सबसे पहले, किसी फ़ंक्शन को मैन्युअल तरीके से ट्रिगर किया जा सकता है. Firebase एक्सटेंशन और Cloud Functions, फ़ंक्शन को मैन्युअल तरीके से ट्रिगर करने के दो तरीके उपलब्ध कराते हैं:

  • एचटीटीपी ट्रिगर: किसी फ़ंक्शन को एचटीटीपी एंडपॉइंट पर डिप्लॉय करना
  • कॉल किए जा सकने वाले फ़ंक्शन: Firebase क्लाइंट SDK टूल का इस्तेमाल करके, iOS, Android या वेब क्लाइंट कोड से सीधे अपने Cloud Functions को कॉल करना.

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

Firebase की सेवाओं से ट्रिगर होने वाले फ़ंक्शन

Firebase के ज़्यादातर प्रॉडक्ट, ऐसे इवेंट जनरेट करते हैं जिनसे एक्सटेंशन के Cloud Functions ट्रिगर हो सकते हैं.

  • Analytics: Analytics में किसी इवेंट के लॉग होने पर, फ़ंक्शन ट्रिगर करना
  • App Distribution: App Distribution से कोई अलर्ट ट्रिगर होने पर, फ़ंक्शन ट्रिगर करना
  • पुष्टि करने की सुविधा: उपयोगकर्ताओं के खाते बनाने और मिटाने पर, फ़ंक्शन ट्रिगर करना
  • Cloud Firestore: पेज बनाने, अपडेट करने या मिटाने पर, फ़ंक्शन ट्रिगर करना
  • Cloud Storage: बकेट से ऑब्जेक्ट अपलोड करने, आर्काइव करने या मिटाने पर, फ़ंक्शन ट्रिगर करना
  • Crashlytics: Crashlytics से कोई अलर्ट ट्रिगर होने पर, फ़ंक्शन ट्रिगर करना
  • परफ़ॉर्मेंस मॉनिटरिंग: परफ़ॉर्मेंस मॉनिटरिंग से कोई अलर्ट ट्रिगर होने पर, फ़ंक्शन ट्रिगर करना
  • रीयलटाइम डेटाबेस: डेटा बनाने, अपडेट करने या मिटाने पर, फ़ंक्शन ट्रिगर करना
  • रिमोट कॉन्फ़िगरेशन: किसी पैरामीटर के अपडेट होने पर, फ़ंक्शन ट्रिगर करना
  • टेस्ट लैब: टेस्ट लैब से कोई अलर्ट ट्रिगर होने पर, फ़ंक्शन ट्रिगर करना

Google Cloud की सेवाओं से ट्रिगर होने वाले फ़ंक्शन

किसी एक्सटेंशन में ऐसे फ़ंक्शन भी शामिल किए जा सकते हैं जो Firebase के अलावा, Google Cloud की कई सेवाओं से ट्रिगर होते हैं:

  • Cloud Pub/Sub: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जो कॉन्फ़िगर किए जा सकने वाले Pub/Sub विषय पर इवेंट पोस्ट होने पर ट्रिगर होते हैं.
  • Cloud Scheduler: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जो सेट किए गए शेड्यूल के हिसाब से चलते हैं
  • Cloud Tasks: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जिन्हें Cloud Tasks का इस्तेमाल करके, क्यू में जोड़ा जा सकता है. Firebase एक्सटेंशन, इस सुविधा का इस्तेमाल करके आपको एक्सटेंशन के लेखक के तौर पर, ऐसे फ़ंक्शन लिखने की अनुमति देता है जो एक्सटेंशन के "लाइफ़साइकल" इवेंट के जवाब में काम करते हैं. जैसे, किसी प्रोजेक्ट में पहली बार इंस्टॉल होना, नए वर्शन में अपग्रेड होना, और फिर से कॉन्फ़िगर होना.
  • Eventarc: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जो कॉन्फ़िगर किए जा सकने वाले Eventarc चैनल पर इवेंट पब्लिश होने पर ट्रिगर होते हैं. इसके उलट, कोई एक्सटेंशन अपने इवेंट को Eventarc चैनल पर पब्लिश कर सकता है, ताकि उपयोगकर्ता अपने फ़ंक्शन तय कर सकें. ये फ़ंक्शन, एक्सटेंशन के इवेंट से ट्रिगर होते हैं.

फ़ंक्शन से जुड़ी उपलब्ध सेवाएं

किसी एक्सटेंशन के Cloud Function के ट्रिगर होने के बाद, इंटिग्रेशन की संभावनाएं आम तौर पर असीमित होती हैं. यहां कुछ खास बातें बताई गई हैं कि Cloud Function से क्या किया जा सकता है:

  • Firebase या Google Cloud की किसी भी ऐसी सेवा के साथ इंटरैक्ट करना जो IAM के लिए उपलब्ध रोल का इस्तेमाल करती है. जैसे, डेटा पढ़ना, लिखना वगैरह.
  • तीसरे पक्ष की किसी भी सेवा के साथ काम करना जो वेब एपीआई उपलब्ध कराती है.
  • कस्टम सेवाओं के साथ काम करना, अगर उनके लिए वेब एपीआई उपलब्ध कराया जाता है.
  • ज़्यादातर JavaScript लाइब्रेरी चलाना. जैसे, TensorFlow.js, Express.js, वगैरह.

एक्सटेंशन बनाने का तरीका

शुरू करना ट्यूटोरियल में, पूरा एक्सटेंशन बनाने, उसकी जांच करने, और उसे पब्लिश करने की प्रोसेस के बारे में बताया गया है. हमारा सुझाव है कि एक्सटेंशन बनाने का तरीका जानने के लिए, इस ट्यूटोरियल को देखें.

शुरू करना

शुरू करने के लिए गाइड को एक बार पढ़ने के बाद, अलग-अलग विषयों के लिए बनी गाइड देखी जा सकती हैं. इनमें, अपना एक्सटेंशन बनाने से जुड़े हर टास्क के बारे में बताया गया है: