Firebase के लिए API कुंजियों के उपयोग और प्रबंधन के बारे में जानें

API कुंजी एक अद्वितीय स्ट्रिंग है जिसका उपयोग Firebase और Google सेवाओं के साथ सहभागिता करते समय आपके Firebase प्रोजेक्ट के अनुरोधों को रूट करने के लिए किया जाता है। यह पृष्ठ API कुंजियों के बारे में मूलभूत जानकारी के साथ-साथ Firebase ऐप्स के साथ API कुंजियों के उपयोग और प्रबंधन के लिए सर्वोत्तम प्रक्रियाओं का वर्णन करता है।

API कुंजियों और Firebase के बारे में सामान्य जानकारी

Firebase के लिए API कुंजियां सामान्य API कुंजियों से भिन्न होती हैं

आम तौर पर एपीआई कुंजी का उपयोग कैसे किया जाता है, इसके विपरीत, फायरबेस सेवाओं के लिए एपीआई कुंजियों का उपयोग बैकएंड संसाधनों तक पहुंच को नियंत्रित करने के लिए नहीं किया जाता है ; यह केवल फायरबेस सुरक्षा नियमों (यह नियंत्रित करने के लिए कि कौन से उपयोगकर्ता संसाधनों तक पहुंच सकते हैं) और ऐप चेक (यह नियंत्रित करने के लिए कि कौन से ऐप्स संसाधनों तक पहुंच सकते हैं) के साथ किया जा सकता है।

आमतौर पर, आपको एपीआई कुंजियों की तेजी से रक्षा करने की आवश्यकता होती है (उदाहरण के लिए, वॉल्ट सेवा का उपयोग करके या कुंजियों को पर्यावरण चर के रूप में सेट करके); हालांकि, फायरबेस सेवाओं के लिए एपीआई कुंजी कोड या चेक-इन कॉन्फ़िगरेशन फ़ाइलों में शामिल करना ठीक है।

हालांकि फायरबेस सेवाओं के लिए एपीआई कुंजी कोड में शामिल करने के लिए सुरक्षित हैं, कुछ विशिष्ट मामले हैं जब आपको अपनी एपीआई कुंजी के लिए सीमाएं लागू करनी चाहिए; उदाहरण के लिए, यदि आप Firebase ML, ईमेल/पासवर्ड साइन-इन विधि के साथ Firebase प्रमाणीकरण, या बिल योग्य Google क्लाउड API का उपयोग कर रहे हैं। इस पृष्ठ पर बाद में इन मामलों के बारे में और जानें।

एपीआई कुंजियाँ बनाना

एक Firebase प्रोजेक्ट में कई API कुंजियां हो सकती हैं, लेकिन प्रत्येक API कुंजी को केवल एक Firebase प्रोजेक्ट से संबद्ध किया जा सकता है।

आपके Firebase ऐप्स के लिए Firebase द्वारा स्वचालित रूप से बनाई गई API कुंजियां

जब आप निम्न में से कोई भी कार्य करते हैं तो Firebase स्वचालित रूप से आपके प्रोजेक्ट के लिए API कुंजियां बनाता है:

  • एक फायरबेस प्रोजेक्ट बनाएं > Browser key स्वतः निर्मित
  • एक फायरबेस ऐप्पल ऐप बनाएं > iOS key ऑटो-निर्मित
  • एक फायरबेस Android ऐप बनाएं > Android key स्वतः निर्मित

आप Google क्लाउड कंसोल में अपनी स्वयं की API कुंजियां भी बना सकते हैं, उदाहरण के लिए विकास या डिबगिंग के लिए। इस बारे में और जानें कि इस पृष्ठ पर बाद में इसकी अनुशंसा कब की जा सकती है।

अपनी API कुंजियाँ ढूँढना

आप Google क्लाउड कंसोल में API और सेवाएँ > क्रेडेंशियल पैनल में अपने प्रोजेक्ट की सभी API कुंजियों को देख और प्रबंधित कर सकते हैं।

आप निम्न स्थानों पर यह भी पता लगा सकते हैं कि कौन सी API कुंजी स्वचालित रूप से किसी Firebase ऐप से मेल खाती है । डिफ़ॉल्ट रूप से, एक ही प्लेटफ़ॉर्म (Apple बनाम Android बनाम वेब) के लिए आपके प्रोजेक्ट के सभी Firebase ऐप्स एक ही API कुंजी का उपयोग करेंगे।

  • Firebase Apple AppsAPI_KEY फ़ील्ड में Firebase कॉन्फ़िग फ़ाइल, GoogleService-Info.plist में ऐप की स्वतः-मिलान वाली API कुंजी ढूंढें।

  • Firebase Android ऐप्सcurrent_key फ़ील्ड में Firebase कॉन्फ़िग फ़ाइल, google-services.json में ऐप की स्वतः-मिलान वाली API कुंजी ढूँढें।

  • फ़ायरबेस वेब ऐप्सapiKey फ़ील्ड में, Firebase कॉन्फ़िग ऑब्जेक्ट में ऐप की ऑटो-मैचेड API कुंजी ढूँढें।

एपीआई कुंजी का उपयोग करना

Firebase/Google सेवाओं के साथ इंटरैक्ट करते समय आपके Firebase प्रोजेक्ट की पहचान करने के लिए API कुंजियों का उपयोग किया जाता है। विशेष रूप से, उनका उपयोग कोटा और बिलिंग के लिए आपके प्रोजेक्ट के साथ API अनुरोधों को जोड़ने के लिए किया जाता है। वे सार्वजनिक डेटा तक पहुँचने के लिए भी उपयोगी हैं।

उदाहरण के लिए, आप क्वेरी पैरामीटर के रूप में REST API कॉल में इसके मान को पास करके स्पष्ट रूप से API कुंजी का उपयोग कर सकते हैं। यह उदाहरण दिखाता है कि आप डायनामिक लिंक लिंक शॉर्टनर एपीआई के लिए अनुरोध कैसे कर सकते हैं:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

जब आपका ऐप्लिकेशन किसी Firebase API को कॉल करता है, तो आपका ऐप्लिकेशन आपके प्रोजेक्ट की API कुंजी के लिए अपने आप Firebase कॉन्फ़िग फ़ाइल/ऑब्जेक्ट में दिखेगा. हालाँकि, आप पर्यावरण चर सहित एक भिन्न तंत्र का उपयोग करके अपनी API कुंजियाँ सेट कर सकते हैं।

API कुंजियों पर प्रतिबंध लागू करें (अनुशंसित)

हालांकि फायरबेस सेवाओं के लिए एपीआई कुंजी को गुप्त रखना आवश्यक नहीं है, कुछ विशिष्ट मामले हैं (नीचे देखें) जिनमें आप अपने प्रोजेक्ट को एपीआई कुंजी के दुरुपयोग से बचाने के लिए अतिरिक्त उपाय करना चाह सकते हैं।

यदि आप पासवर्ड-आधारित प्रमाणीकरण का उपयोग करते हैं तो कोटा को कस लें

अगर आप पासवर्ड-आधारित Firebase प्रमाणीकरण का उपयोग करते हैं और किसी को आपकी API कुंजी मिल जाती है, तो वे तब तक आपके किसी भी Firebase प्रोजेक्ट के डेटाबेस या क्लाउड स्टोरेज डेटा तक नहीं पहुंच पाएंगे, जब तक कि यह डेटा Firebase सुरक्षा नियमों द्वारा सुरक्षित है । हालांकि, वे आपकी API कुंजी का उपयोग Firebase के प्रमाणीकरण समापन बिंदुओं तक पहुंचने और आपके प्रोजेक्ट के विरुद्ध प्रमाणीकरण अनुरोध करने के लिए कर सकते हैं।

इस संभावना को कम करने के लिए कि कोई व्यक्ति किसी क्रूर बल के हमले का प्रयास करने के लिए एपीआई कुंजी का दुरुपयोग कर सकता है, आप अपने ऐप की सामान्य ट्रैफ़िक अपेक्षाओं को दर्शाने के लिए identitytoolkit.googleapis.com टूलकिट.googleapis.com एंडपॉइंट के डिफ़ॉल्ट कोटा को कस कर सकते हैं। ध्यान रखें कि यदि आप इस कोटा को सख्त करते हैं और आपका ऐप अचानक उपयोगकर्ताओं को प्राप्त कर लेता है, तो आपको कोटा बढ़ाने तक साइन-इन त्रुटियां मिल सकती हैं। आप Google क्लाउड कंसोल में अपने प्रोजेक्ट का API कोटा बदल सकते हैं।

विशिष्ट प्रकार के API के लिए अलग, प्रतिबंधित API कुंजियों का उपयोग करें

हालांकि फायरबेस सेवाओं के लिए उपयोग की जाने वाली एपीआई कुंजियों को आमतौर पर गुप्त मानने की आवश्यकता नहीं होती है, आपको Google क्लाउड एपीआई तक पहुंच प्रदान करने के लिए उपयोग की जाने वाली एपीआई कुंजियों के साथ कुछ अतिरिक्त सावधानी बरतनी चाहिए जिन्हें आपने मैन्युअल रूप से सक्षम किया है।

यदि आप एक Google क्लाउड एपीआई (किसी भी प्लेटफॉर्म पर) का उपयोग करते हैं जो फायरबेस द्वारा स्वचालित रूप से सक्षम नहीं है (जिसका अर्थ है कि आपने इसे स्वयं सक्षम किया है), तो आपको उन एपीआई के उपयोग के लिए अलग, प्रतिबंधित एपीआई कुंजी बनाने पर विचार करना चाहिए। यह विशेष रूप से महत्वपूर्ण है यदि एपीआई बिल योग्य Google क्लाउड सेवा के लिए है।

उदाहरण के लिए, यदि आप iOS पर Firebase ML के क्लाउड विज़न API का उपयोग करते हैं, तो आपको अलग API कुंजियाँ बनानी चाहिए जिनका उपयोग आप केवल Cloud Vision API तक पहुँचने के लिए करते हैं।

गैर-Firebase API के लिए अलग, प्रतिबंधित API कुंजियों का उपयोग करके, आप आवश्यकता पड़ने पर कुंजियों को घुमा सकते हैं या बदल सकते हैं और Firebase सेवाओं के आपके उपयोग को बाधित किए बिना API कुंजियों में अतिरिक्त प्रतिबंध जोड़ सकते हैं।

परिवेश-विशिष्ट API कुंजियों का उपयोग करें (अनुशंसित)

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

विकास से स्टेजिंग से उत्पादन तक कोड परिवर्तन को बढ़ावा देने वाली समस्याओं को कम करने के लिए, कोड में एपीआई कुंजी को शामिल करने के बजाय, या तो उन्हें पर्यावरण चर के रूप में सेट करें या उन्हें कॉन्फ़िगरेशन फ़ाइल में शामिल करें।

ध्यान दें कि यदि आप Firebase ML के साथ विकास के लिए Firebase स्थानीय एमुलेटर सूट का उपयोग कर रहे हैं, तो आपको केवल डीबग-ओनली API कुंजी बनानी चाहिए और उसका उपयोग करना चाहिए। उस तरह की कुंजी बनाने के निर्देश Firebase ML डॉक्स में पाए जाते हैं।

पूछे जाने वाले प्रश्न