Firebase Extension को तय किए गए काम करने के लिए, Firebase इंस्टॉल किए गए एक्सटेंशन के हर इंस्टेंस को आपके प्रोजेक्ट और डेटा का सीमित ऐक्सेस देता है. यह ऐक्सेस, सेवा खाते के ज़रिए दिया जाता है.
सेवा खाता क्या होता है?
सेवा खाता एक खास तरह का Google उपयोगकर्ता खाता होता है. यह किसी ऐसे सिस्टम या मशीन का प्रतिनिधित्व करता है जिसके पास Google API का इस्तेमाल करके डेटा ऐक्सेस करने की अनुमति होती है.
एक्सटेंशन इंस्टॉल करते समय, Firebase आपके प्रोजेक्ट में एक सेवा खाता बनाता है. एक्सटेंशन के हर इंस्टॉल किए गए इंस्टेंस का अपना सेवा खाता होता है.
Firebase, एक्सटेंशन के सेवा खाते को खास भूमिकाएं (अनुमतियों के बंडल) असाइन करके, आपके प्रोजेक्ट और डेटा के ऐक्सेस को सीमित करता है. एक्सटेंशन को काम करने के लिए जिन भूमिकाओं की ज़रूरत होती है उन्हें एक्सटेंशन डेवलपमेंट के दौरान Firebase तय करता है. इंस्टॉल करते समय, Firebase इन भूमिकाओं को एक्सटेंशन के सेवा खाते को असाइन करता है. आपको असाइन की गई इन भूमिकाओं में बदलाव नहीं करना चाहिए, न ही इनमें कुछ जोड़ना चाहिए और न ही इन्हें मिटाना चाहिए. ऐसा करने पर, इंस्टॉल किया गया एक्सटेंशन उम्मीद के मुताबिक काम नहीं करेगा. हालांकि, एक्सटेंशन को अनइंस्टॉल किया जा सकता है. ऐसा करने पर, सेवा खाता और उसका ऐक्सेस पूरी तरह से मिट जाता है.
एक्सटेंशन के लिए बनाए गए सेवा खाते इस फ़ॉर्मैट में होते हैं:
ext-extension-instance-id@project-id.iam.gserviceaccount.com
अपने Firebase प्रोजेक्ट से जुड़े सभी सेवा खातों को यहां देखा जा सकता है:
अनुमतियां और भूमिकाएं
एक्सटेंशन डेवलप करते समय, Firebase यह तय करता है कि एक्सटेंशन को काम करने के लिए किस लेवल के ऐक्सेस की ज़रूरत है.
Firebase, ऐक्सेस के इस लेवल को तय करता है. इसके लिए, वह उन भूमिकाओं (अनुमतियों के बंडल) की सूची बनाता है जिन्हें Firebase को एक्सटेंशन के सेवा खाते को असाइन करना चाहिए. ऐसा एक्सटेंशन इंस्टॉल करने के दौरान किया जाता है.
हर भूमिका (और उससे जुड़ी अनुमतियां) किसी खास प्रॉडक्ट या सेवा पर आधारित होती है. भूमिकाओं के उदाहरण firebasehosting.admin
, bigquery.dataEditor
, और firebasedatabase.admin
हैं. Firebase, एक्सटेंशन की स्पेसिफ़िकेशन फ़ाइल (extension.yaml
फ़ाइल) में, एक्सटेंशन के लिए ज़रूरी भूमिकाओं की सूची दिखाता है.
Firebase के आधिकारिक एक्सटेंशन के लिए, Firebase भूमिकाओं की इस सूची की पूरी तरह से समीक्षा करता है. इससे यह पक्का किया जाता है कि एक्सटेंशन का ऐक्सेस, एक्सटेंशन के टास्क के दायरे तक ही सीमित हो. एक्सटेंशन को दिए गए ऐक्सेस की समीक्षा और पुष्टि करने के लिए, Firebase Extensions डैशबोर्ड में जाकर एक्सटेंशन की जानकारी वाला पेज देखें या उसकी README
फ़ाइल देखें.
हर भूमिका में शामिल अनुमतियों के बारे में जानें:
किसी एक्सटेंशन को अनइंस्टॉल करने पर क्या होता है?
अपने प्रोजेक्ट से एक्सटेंशन अनइंस्टॉल करने पर, Firebase उस एक्सटेंशन के इंस्टेंस के लिए बनाए गए सेवा खाते को मिटा देता है. सेवा खाते को मिटाने के बाद, एक्सटेंशन आपके प्रोजेक्ट में काम नहीं करेगा. ऐसा इसलिए, क्योंकि अब उसके पास आपके प्रोजेक्ट या डेटा के ऐक्सेस के अधिकार नहीं हैं.