Firebase एक्सटेंशन, एचटीटीपी अनुरोधों के जवाब में कोई खास टास्क या टास्क का सेट करता है. इसके अलावा, यह Firebase Cloud Messaging, Cloud Firestore या Pub/Sub जैसे Firebase और Google के अन्य प्रॉडक्ट से ट्रिगर होने वाले इवेंट के जवाब में भी ऐसा करता है.
आपके पास अपने निजी इस्तेमाल के लिए या Firebase एक्सटेंशन हब में दुनिया के साथ शेयर करने के लिए, अपना एक्सटेंशन बनाने का विकल्प है. उदाहरण के लिए, आपका एक्सटेंशन कोई ऐसा काम कर सकता है जिसकी ज़रूरत आपके ऐप्लिकेशन को नियमित तौर पर पड़ती है. इसके अलावा, यह आपकी कंपनी के किसी एपीआई को ऐक्सेस करना आसान बना सकता है. एक्सटेंशन बनाने के बाद, उसे दूसरों के साथ शेयर किया जा सकता है. ये उपयोगकर्ता, अपने 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, और एक्सटेंशन हब इन फ़ाइलों का कॉन्टेंट दिखाते हैं.
एक्सटेंशन बनाने के बाद, Firebase CLI का इस्तेमाल करके उसे किसी प्रोजेक्ट में इंस्टॉल किया जा सकता है या एक्सटेंशन हब में पब्लिश किया जा सकता है. यहां कोई भी व्यक्ति इसे ढूंढ सकता है और अपने प्रोजेक्ट में इंस्टॉल कर सकता है.
मेरा एक्सटेंशन किन प्रॉडक्ट के साथ इंटरैक्ट कर सकता है?
Firebase एक्सटेंशन, Cloud Functions का इस्तेमाल करके काम करता है. इसलिए, इंटिग्रेशन के संभावित सवालों के बारे में दो तरीकों से सोचा जा सकता है: मेरे एक्सटेंशन के फ़ंक्शन कौनसे प्रॉडक्ट ट्रिगर कर सकते हैं? और ट्रिगर होने के बाद, मेरे एक्सटेंशन के फ़ंक्शन किन प्रॉडक्ट के साथ इंटरैक्ट कर सकते हैं?
काम करने वाले फ़ंक्शन ट्रिगर
मैन्युअल ट्रिगर
सबसे पहले, किसी फ़ंक्शन को मैन्युअल तरीके से ट्रिगर किया जा सकता है. Firebase एक्सटेंशन और Cloud Functions, फ़ंक्शन को मैन्युअल तरीके से ट्रिगर करने के दो तरीकों के साथ काम करते हैं:
- एचटीटीपी ट्रिगर: एचटीटीपी एंडपॉइंट पर फ़ंक्शन डिप्लॉय करना
- कॉल किए जा सकने वाले फ़ंक्शन: Firebase क्लाइंट SDK टूल का इस्तेमाल करके, अपने iOS, Android या वेब क्लाइंट कोड से सीधे अपने Cloud Functions को कॉल करें.
अपने एक्सटेंशन से एचटीटीपी एंडपॉइंट एक्सपोज़ करके, आपके एक्सटेंशन को वेबहुक के साथ काम करने वाली किसी भी वेब सेवा के साथ इंटिग्रेट किया जा सकता है. कॉल किए जा सकने वाले फ़ंक्शन की मदद से, आपके एक्सटेंशन को इंस्टॉल करने वाले उपयोगकर्ता, Firebase SDK टूल को क्लाइंट लाइब्रेरी के तौर पर इस्तेमाल कर सकते हैं. इससे, वे आपके एक्सटेंशन में लागू किए गए एपीआई को ऐक्सेस कर सकते हैं.
Firebase सेवा के ट्रिगर
ज़्यादातर Firebase प्रॉडक्ट ऐसे इवेंट उत्सर्जित करते हैं जो किसी एक्सटेंशन के Cloud Functions को ट्रिगर कर सकते हैं.
- Analytics: Analytics में इवेंट लॉग होने पर फ़ंक्शन ट्रिगर होते हैं
- ऐप्लिकेशन डिस्ट्रिब्यूशन: जब ऐप्लिकेशन डिस्ट्रिब्यूशन से कोई अलर्ट ट्रिगर होता है, तो फ़ंक्शन ट्रिगर होते हैं
- पुष्टि करना: उपयोगकर्ता खाते बनाते और मिटाते समय, फ़ंक्शन ट्रिगर करते हैं
- Cloud Firestore: पेज बनाने, अपडेट करने या मिटाने पर फ़ंक्शन ट्रिगर करना
- Cloud Storage: जब ऑब्जेक्ट अपलोड किए जाते हैं, संग्रहित किए जाते हैं या बकेट से मिटाए जाते हैं, तब फ़ंक्शन ट्रिगर होते हैं
- Crashlytics: Crashlytics से मिलने वाले अलर्ट के ट्रिगर होने पर फ़ंक्शन ट्रिगर होते हैं
- परफ़ॉर्मेंस मॉनिटरिंग: जब परफ़ॉर्मेंस मॉनिटरिंग से कोई सूचना मिलती है, तो फ़ंक्शन ट्रिगर होते हैं
- रीयल टाइम डेटाबेस: डेटा बनाने, अपडेट करने या मिटाने पर फ़ंक्शन ट्रिगर करना
- रिमोट कॉन्फ़िगरेशन: पैरामीटर अपडेट होने पर फ़ंक्शन ट्रिगर करना
- Test Lab: Test Lab से कोई सूचना मिलने पर फ़ंक्शन ट्रिगर करना
Google Cloud सेवा के ट्रिगर
एक्सटेंशन में ऐसे फ़ंक्शन भी शामिल हो सकते हैं जो Firebase के अलावा, Google Cloud की कई सेवाओं को ट्रिगर करते हैं:
- Cloud Pub/Sub: एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जो कॉन्फ़िगर किए जा सकने वाले Pub/Sub विषय पर इवेंट पोस्ट होने पर ट्रिगर होते हैं.
- Cloud Scheduler: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जो किसी तय शेड्यूल पर चलते हैं
- Cloud Tasks: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जिन्हें Cloud Tasks का इस्तेमाल करके, सूची में जोड़ा जा सकता है. Firebase एक्सटेंशन इस सुविधा का इस्तेमाल करके, आपको एक्सटेंशन के "लाइफ़साइकल" इवेंट के जवाब देने वाले फ़ंक्शन लिखने की सुविधा देता है. जैसे, किसी प्रोजेक्ट में पहली बार इंस्टॉल किया जा रहा है, नए वर्शन में अपग्रेड किया जा रहा है, और फिर से कॉन्फ़िगर किया जा रहा है.
- Eventarc: किसी एक्सटेंशन में ऐसे फ़ंक्शन शामिल किए जा सकते हैं जो कॉन्फ़िगर किए जा सकने वाले Eventarc चैनल पर इवेंट पब्लिश होने पर ट्रिगर होते हैं. इसके उलट, कोई एक्सटेंशन अपने इवेंट को Eventarc चैनल पर पब्लिश कर सकता है, ताकि उपयोगकर्ता एक्सटेंशन के इवेंट से ट्रिगर होने वाले अपने फ़ंक्शन तय कर सकें.
इन फ़ंक्शन के साथ काम करता है
किसी एक्सटेंशन का Cloud फ़ंक्शन ट्रिगर होने के बाद, आम तौर पर इंटिग्रेशन की सीमा तय नहीं होती. यहां कुछ हाइलाइट दी गई हैं, जिनसे पता चलता है कि Cloud फ़ंक्शन की मदद से क्या-क्या किया जा सकता है:
- Firebase या Google Cloud की किसी भी ऐसी सेवा को पढ़ना, उसमें बदलाव करना, और उससे इंटरैक्ट करना जो काम करने वाली IAM भूमिका का इस्तेमाल करती है.
- वेब एपीआई उपलब्ध कराने वाली तीसरे पक्ष की किसी भी सेवा के साथ काम करना.
- अगर आपने वेब एपीआई उपलब्ध कराया है, तो अपनी कस्टम सेवाओं के साथ काम करें.
- TensorFlow.js, Express.js वगैरह जैसी ज़्यादातर JavaScript लाइब्रेरी चलाएं.
एक्सटेंशन बनाने का तरीका
शुरू करें ट्यूटोरियल में, आपको पूरा एक्सटेंशन बनाने, उसकी जांच करने, और उसे पब्लिश करने की प्रोसेस के बारे में बताया गया है. एक्सटेंशन बनाने का तरीका जानने के लिए, यह ट्यूटोरियल देखना सबसे सही है.
शुरू करने से जुड़ी गाइड को एक बार पढ़ने के बाद, अलग-अलग विषयों के लिए बनी गाइड देखी जा सकती हैं. इनमें, अपना एक्सटेंशन बनाने से जुड़े हर काम के बारे में बताया गया है:
- एक्सटेंशन के लिए फ़ंक्शन लिखना
- एक्सटेंशन में पैरामीटर का इस्तेमाल करना
- किसी एक्सटेंशन के लिए सही ऐक्सेस सेट अप करना
- एक्सटेंशन के लाइफ़साइकल इवेंट का जवाब देना
- किसी एक्सटेंशन में उपयोगकर्ता हुक जोड़ना
- अपने एक्सटेंशन के लिए उपयोगकर्ता दस्तावेज़ बनाना
- Extensions Hub पर एक्सटेंशन पब्लिश करना
- extension.yaml का पूरा रेफ़रंस