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