Firebase के लिए, एपीआई पासकोड इस्तेमाल और मैनेज करने के बारे में जानें

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

एपीआई पासकोड और Firebase के बारे में सामान्य जानकारी

Firebase के लिए एपीआई पासकोड, सामान्य एपीआई पासकोड से अलग होते हैं

आम तौर पर एपीआई पासकोड का इस्तेमाल करने के तरीके के उलट, Firebase सेवाओं के लिए एपीआई पासकोड का इस्तेमाल, बैकएंड संसाधनों के ऐक्सेस को कंट्रोल करने के लिए नहीं किया जाता. ऐसा सिर्फ़ Firebase Security Rules (यह कंट्रोल करने के लिए कि कौनसे असल उपयोगकर्ता संसाधनों को ऐक्सेस कर सकते हैं) और Firebase App Check (यह कंट्रोल करने के लिए कि कौनसे ऐप्लिकेशन संसाधनों को ऐक्सेस कर सकते हैं) की मदद से किया जा सकता है.

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

Firebase की सेवाओं के लिए एपीआई कुंजियों को कोड में शामिल करना सुरक्षित है. हालांकि, आपको उनकी समीक्षा करके, उन पर सही पाबंदियां और सीमाएं लागू करनी चाहिए.

एपीआई पासकोड बनाना

किसी Firebase प्रोजेक्ट में कई एपीआई पासकोड हो सकते हैं. हालांकि, हर एपीआई पासकोड को सिर्फ़ एक Firebase प्रोजेक्ट से जोड़ा जा सकता है.

आपके Firebase ऐप्लिकेशन के लिए, Firebase के ज़रिए अपने-आप जनरेट हुई एपीआई कुंजियां

Firebase आपके प्रोजेक्ट के लिए एपीआई कुंजियां अपने-आप बनाता है, जब आप इनमें से कोई भी काम करते हैं:

  • Firebase प्रोजेक्ट बनाएं > Browser key अपने-आप बनने वाला
  • Firebase Apple ऐप्लिकेशन बनाएं > iOS key अपने-आप बना
  • Firebase Android ऐप्लिकेशन बनाएं > Android key अपने-आप जनरेट हुआ

Google Cloud कंसोल में भी अपनी एपीआई कुंजियां बनाई जा सकती हैं. उदाहरण के लिए, डेवलपमेंट या डीबग करने के लिए. इस पेज पर जाकर, इस बारे में ज़्यादा जानें कि यह सुविधा कब सुझाई जा सकती है.

अपनी एपीआई कुंजियां ढूंढना

Google Cloud कंसोल में, एपीआई और सेवाएं > क्रेडेंशियल पैनल में जाकर, अपने प्रोजेक्ट की सभी एपीआई पासकोड देखे और मैनेज किए जा सकते हैं.

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

  • Firebase के Apple ऐप्लिकेशनAPI_KEY फ़ील्ड में, Firebase कॉन्फ़िगरेशन फ़ाइल GoogleService-Info.plist में, अपने-आप मैच होने वाली API कुंजी ढूंढें.

  • Firebase के Android ऐप्लिकेशनcurrent_key फ़ील्ड में, Firebase कॉन्फ़िगरेशन फ़ाइल, google-services.json में अपने-आप मैच होने वाली एपीआई पासकोड ढूंढें.

  • Firebase वेब ऐप्लिकेशनapiKey फ़ील्ड में, Firebase कॉन्फ़िगरेशन ऑब्जेक्ट में अपने-आप मैच होने वाली एपीआई पासकोड ढूंढें.

एपीआई पासकोड का इस्तेमाल करना

एपीआई पासकोड का इस्तेमाल, Firebase/Google की सेवाओं के साथ इंटरैक्ट करते समय, आपके Firebase प्रोजेक्ट की पहचान करने के लिए किया जाता है. खास तौर पर, इनका इस्तेमाल कोटा और बिलिंग के लिए, एपीआई अनुरोधों को आपके प्रोजेक्ट से जोड़ने के लिए किया जाता है. ये सार्वजनिक डेटा को ऐक्सेस करने के लिए भी काम के हैं.

उदाहरण के लिए, एपीआई पासकोड का साफ़ तौर पर इस्तेमाल करने के लिए, उसकी वैल्यू को क्वेरी पैरामीटर के तौर पर REST एपीआई कॉल में पास करें. इस उदाहरण में, Dynamic Links लिंक छोटा करने वाले एपीआई से अनुरोध करने का तरीका बताया गया है:

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

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

एपीआई पासकोड की समीक्षा करें और उन पर सही पाबंदियां लागू करें (इसका सुझाव दिया जाता है)

Firebase की सेवाओं के लिए एपीआई पासकोड को गुप्त रखने की ज़रूरत नहीं है. हालांकि, आपको इस सेक्शन में बताई गई पाबंदियों और सीमाओं की समीक्षा करनी चाहिए और उन्हें लागू करना चाहिए.

अपनी Firebase एपीआई कुंजियों के लिए, अनुमति वाली सूची में अपने-आप जुड़े एपीआई की समीक्षा करना

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

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

पासवर्ड पर आधारित Authentication का इस्तेमाल करने पर, कोटा को कम करें

अगर पासवर्ड पर आधारित Firebase Authentication का इस्तेमाल किया जाता है और किसी व्यक्ति को आपकी एपीआई पासकोड मिल जाता है, तो वह आपके Firebase प्रोजेक्ट के किसी भी डेटाबेस या Cloud Storage डेटा को नहीं ऐक्सेस कर पाएगा. ऐसा तब तक होगा, जब तक यह डेटा Firebase Security Rules से सुरक्षित रहेगा. हालांकि, वे Firebase के पुष्टि करने वाले एंडपॉइंट को ऐक्सेस करने और आपके प्रोजेक्ट के लिए पुष्टि करने के अनुरोध करने के लिए, आपकी एपीआई पासकोड का इस्तेमाल कर सकते हैं.

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

Firebase से बाहर की किसी भी सेवा के लिए, अलग-अलग और पाबंदी वाली एपीआई कुंजियों का इस्तेमाल करना

आम तौर पर, Firebase की सेवाओं के लिए इस्तेमाल की जाने वाली एपीआई कुंजियों को गुप्त नहीं माना जाता. हालांकि, आपको उन एपीआई कुंजियों के लिए कुछ अतिरिक्त सावधानियां बरतनी चाहिए जिन्हें Google Cloud के अन्य एपीआई के साथ इस्तेमाल किया जाता है.

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

उदाहरण के लिए, अगर iOS पर Firebase ML और Cloud Vision API का इस्तेमाल किया जाता है, तो आपको अलग-अलग एपीआई पासकोड बनाने चाहिए. इनका इस्तेमाल सिर्फ़ Cloud Vision API को ऐक्सेस करने के लिए किया जाना चाहिए.

Firebase के अलावा अन्य एपीआई के लिए, पाबंदी वाली अलग-अलग एपीआई कुंजियों का इस्तेमाल करके, ज़रूरत पड़ने पर कुंजियों को घुमाया या बदला जा सकता है. साथ ही, Firebase की सेवाओं के इस्तेमाल में रुकावट डाले बिना, एपीआई कुंजियों पर और पाबंदियां जोड़ी जा सकती हैं.

इन निर्देशों में, Super Service API नाम के नकली एपीआई के लिए, पाबंदी वाली अलग एपीआई पासकोड बनाने का तरीका बताया गया है.

पहला चरण: Super Service API को ऐक्सेस करने से रोकने के लिए, अपनी मौजूदा एपीआई कुंजियों को कॉन्फ़िगर करना

  1. Google Cloud कंसोल का क्रेडेंशियल पेज खोलें. जब कहा जाए, तब अपना प्रोजेक्ट चुनें.

  2. सूची में मौजूद हर मौजूदा एपीआई पासकोड के लिए, बदलाव करने वाला व्यू खोलें.

  3. एपीआई से जुड़ी पाबंदियां सेक्शन में, पासकोड पर पाबंदी लगाएं को चुनें. इसके बाद, उन सभी एपीआई को सूची में जोड़ें जिनका ऐक्सेस आपको एपीआई पासकोड से चाहिए. पक्का करें कि आपने उस एपीआई को शामिल न किया हो जिसके लिए अलग एपीआई पासकोड बनाया जा रहा है (इस उदाहरण में, Super Service API).

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

अब आपकी मौजूदा एपीआई कुंजियां, Super Service API का ऐक्सेस नहीं देंगी. हालांकि, हर कुंजी उन सभी एपीआई के लिए काम करती रहेगी जिन्हें आपने एपीआई से जुड़ी पाबंदियों की सूची में जोड़ा है.

दूसरा चरण: Super Service API को ऐक्सेस करने के लिए, नई एपीआई कुंजी बनाना और उसका इस्तेमाल करना

  1. क्रेडेंशियल पेज पर वापस जाएं. पक्का करें कि आपका Firebase प्रोजेक्ट अब भी चुना गया हो.

  2. क्रेडेंशियल बनाएं > एपीआई पासकोड पर क्लिक करें. नई एपीआई पासकोड को नोट करें. इसके बाद, पासकोड पर पाबंदी लगाएं पर क्लिक करें.

  3. एपीआई से जुड़ी पाबंदियां सेक्शन में, पासकोड पर पाबंदी लगाएं चुनें. इसके बाद, सूची में Super Service API को सिर्फ़ जोड़ें.

    यह नई एपीआई कुंजी, सिर्फ़ Super Service API को ऐक्सेस देती है.

  4. नई एपीआई कुंजी का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन और सेवाओं को कॉन्फ़िगर करें.

एनवायरमेंट के हिसाब से एपीआई पासकोड का इस्तेमाल करना (इसका सुझाव दिया जाता है)

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

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

ध्यान दें कि अगर Firebase ML के साथ-साथ डेवलपमेंट के लिए Firebase Local Emulator Suite का इस्तेमाल किया जा रहा है, तो आपको सिर्फ़ डीबग के लिए एपीआई पासकोड बनाना होगा और उसका इस्तेमाल करना होगा. इस तरह की कुंजी बनाने के लिए निर्देश, Firebase ML दस्तावेज़ में दिए गए हैं.

अक्सर पूछे जाने वाले सवाल और समस्या हल करना

अक्सर पूछे जाने वाले सवाल

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

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

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

Google Cloud कंसोल में, एपीआई और सेवाएं > क्रेडेंशियल पैनल में जाकर, अपनी सभी एपीआई कुंजियां और उनकी "एपीआई से जुड़ी पाबंदियां" देखी जा सकती हैं.

Firebase, इन "एपीआई से जुड़ी पाबंदियों" को कैसे लागू करता है, इस बारे में इन बातों का ध्यान रखें:

  • मई 2024 से, Firebase की ओर से अपने-आप प्रोवाइड की जाने वाली सभी नई एपीआई पासकोड, Firebase से जुड़े एपीआई की सूची में अपने-आप शामिल हो जाएंगे.

  • मई 2024 से, Firebase से जुड़े एपीआई की सूची और प्रोजेक्ट के चालू एपीआई के साथ-साथ, Firebase ने पहले जिन सभी मौजूदा और बिना पाबंदी वाली एपीआई कुंजियों को अपने-आप उपलब्ध कराया था उन पर पाबंदी लगा दी गई है.

  • Firebase ने पहले जिन एपीआई कुंजियों को अपने-आप उपलब्ध कराया था उनमें कोई बदलाव नहीं किया गया. ये कुंजियां, मौजूदा और पहले से ही पाबंदी वाली हैं.

  • Firebase की ओर से अपने-आप प्रोवाइड की गई मौजूदा एपीआई कुंजियों में कोई बदलाव नहीं किया गया.

यह पता लगाने के लिए कि आपके Firebase ऐप्लिकेशन से कौनसी एपीआई पासकोड जुड़ा है, इनमें से किसी भी विकल्प का इस्तेमाल किया जा सकता है:

  1. प्रोजेक्ट की सेटिंग पर जाएं. इसके बाद, नीचे की ओर स्क्रोल करके आपके ऐप्लिकेशन कार्ड पर जाएं.

  2. अपनी पसंद का ऐप्लिकेशन चुनें.

  3. अपनी पसंद के ऐप्लिकेशन के लिए Firebase कॉन्फ़िगरेशन फ़ाइल/ऑब्जेक्ट पाएं. इसके बाद, उसकी एपीआई पासकोड ढूंढें:

    • Apple: GoogleService-Info.plist डाउनलोड करें. इसके बाद, API_KEY फ़ील्ड ढूंढें

    • Android: google-services.json डाउनलोड करें और अपनी पसंद के ऐप्लिकेशन का कॉन्फ़िगरेशन ढूंढें (इसका पैकेज नाम देखें). इसके बाद, current_key फ़ील्ड ढूंढें

    • वेब: कॉन्फ़िगर करें विकल्प चुनें. इसके बाद, apiKey फ़ील्ड ढूंढें

  1. अपनी पसंद के ऐप्लिकेशन के लिए Firebase कॉन्फ़िगरेशन फ़ाइल/ऑब्जेक्ट पाएं. इसके लिए, यह कमांड चलाएं:

    firebase apps:sdkconfig PLATFORM FIREBASE_APP_ID
  2. ऐप्लिकेशन के प्रिंट किए गए Firebase कॉन्फ़िगरेशन में, उसकी एपीआई कुंजी ढूंढें:

    • Apple: API_KEY फ़ील्ड ढूंढना

    • Android: अपनी पसंद के ऐप्लिकेशन का कॉन्फ़िगरेशन ढूंढें (इसके पैकेज का नाम देखें). इसके बाद, current_key फ़ील्ड ढूंढें

    • वेब: apiKey फ़ील्ड ढूंढें

  1. अपनी पसंद के ऐप्लिकेशन के लिए लागू एंडपॉइंट को कॉल करके, एपीआई पासकोड का apiKeyId (यूआईडी) पाएं. इसके बाद, apiKeyId वैल्यू को अगले चरण में पास करें.

  2. projects.locations.keys.getKeyString को कॉल करके, एपीआई पासकोड स्ट्रिंग पाएं.

    यह keyString वही वैल्यू है जो ऐप्लिकेशन के कॉन्फ़िगरेशन आर्टफ़ैक्ट (Apple | Android | वेब) में मिल सकती है.

  • Firebase के Apple ऐप्लिकेशन — हर ऐप्लिकेशन की अपनी कॉन्फ़िगरेशन फ़ाइल होती है और उसमें सिर्फ़ एक एपीआई पासकोड शामिल किया जा सकता है.

  • Firebase के Android ऐप्लिकेशन — Firebase प्रोजेक्ट के सभी Android ऐप्लिकेशन, एक ही कॉन्फ़िगरेशन फ़ाइल में सूची में शामिल होते हैं. साथ ही, हर ऐप्लिकेशन में सिर्फ़ एक एपीआई पासकोड सूची में शामिल किया जा सकता है. हालांकि, इस कॉन्फ़िगरेशन फ़ाइल में हर ऐप्लिकेशन के लिए, एक अलग पासकोड हो सकता है.

  • Firebase वेब ऐप्लिकेशन — हर ऐप्लिकेशन का अपना कॉन्फ़िगरेशन ऑब्जेक्ट होता है और इसमें सिर्फ़ एक एपीआई पासकोड सूची में शामिल किया जा सकता है.

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

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

अगर Firebase को कोई ऐसी पाबंदी वाली कुंजी नहीं मिलती जो मैच करती हो, तो वह कॉन्फ़िगरेशन फ़ाइल/ऑब्जेक्ट में, Apple ऐप्लिकेशन के लिए iOS key, Android ऐप्लिकेशन के लिए Android key, और वेब ऐप्लिकेशन के लिए Browser key को शामिल करेगा. ऐसा तब माना जाएगा, जब ये कुंजियां मौजूद हों और उन पर कोई ऐसी "ऐप्लिकेशन से जुड़ी पाबंदी" न हो जिसकी वजह से वे उस ऐप्लिकेशन से मैच न कर पाएं.

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

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

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

नहीं, एपीआई कुंजी सिर्फ़ किसी खास प्रोजेक्ट की पहचान करती है और उसे किसी दूसरे प्रोजेक्ट में नहीं ले जाया जा सकता.

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

एपीआई पासकोड को मिटाने के बाद, उसे वापस नहीं लाया जा सकता.

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

नीचे दी गई टेबल का इस्तेमाल करके यह तय करें कि Firebase एपीआई कुंजी के लिए, "एपीआई से जुड़ी पाबंदियां" की अनुमति वाली सूची में किन Firebase से जुड़े एपीआई को शामिल करना है. याद रखें कि Firebase API पासकोड का इस्तेमाल सिर्फ़ Firebase की सेवाओं के लिए किया जाना चाहिए. अलग-अलग तरह के एपीआई के लिए, पाबंदी वाली अलग-अलग एपीआई कुंजियां बनाने के बारे में ज़्यादा जानें.

Google Cloud कंसोल में, एपीआई और सेवाएं > क्रेडेंशियल पैनल में जाकर, अपने प्रोजेक्ट की एपीआई पासकोड देखे और उन्हें मैनेज किए जा सकते हैं.

एपीआई का नाम (सेवा का नाम) एपीआई का डिसप्ले नेम इससे जुड़ी Firebase
सेवा / प्रॉडक्ट
firebase.googleapis.com Firebase मैनेजमेंट एपीआई सभी प्रॉडक्ट
logging.googleapis.com Cloud Logging API सभी प्रॉडक्ट
firebaseinstallations.googleapis.com Firebase इंस्टॉलेशन एपीआई Cloud Messaging, Crashlytics, In-App Messaging, Performance Monitoring, Remote Config, Firebase ML
firebaseappcheck.googleapis.com Firebase App Check API App Check
firebaseappdistribution.googleapis.com Firebase App Distribution API App Distribution
firebaseapptesters.googleapis.com Firebase App Testers API App Distribution
identitytoolkit.googleapis.com Identity Toolkit API Authentication
securetoken.googleapis.com Token Service API Authentication
firebaserules.googleapis.com * Firebase Rules API Cloud Firestore, Cloud Storage, Realtime Database
datastore.googleapis.com Cloud Datastore API Cloud Firestore
firestore.googleapis.com Google Cloud Firestore API Cloud Firestore
fcmregistrations.googleapis.com FCM Registration API Cloud Messaging
firebasestorage.googleapis.com Firebase के लिए Cloud Storage API Cloud Storage
firebasedynamiclinks.googleapis.com Firebase डाइनैमिक लिंक API Dynamic Links
firebasehosting.googleapis.com * Firebase Hosting API Hosting
firebaseinappmessaging.googleapis.com Firebase इन-ऐप्लिकेशन मैसेजिंग API In-App Messaging
firebaseml.googleapis.com Firebase ML API Firebase ML
mlkit.googleapis.com ** ML Kit API Firebase ML
mobilecrashreporting.googleapis.com Mobile Crash Reporting API Performance Monitoring
play.googleapis.com Google Play Android डेवलपर API Performance Monitoring
firebaseremoteconfig.googleapis.com Firebase रिमोट कॉन्फ़िगरेशन एपीआई Performance Monitoring, Remote Config
firebaseremoteconfigrealtime.googleapis.com Firebase रिमोट कॉन्फ़िगरेशन रीयलटाइम एपीआई Performance Monitoring, Remote Config
cloudconfig.googleapis.com ** लागू नहीं Remote Config
firebasedatabase.googleapis.com * Firebase रीयलटाइम डेटाबेस API Realtime Database
firebasevertexai.googleapis.com Firebase API में Vertex AI Vertex AI in Firebase

* यह सिर्फ़ तब ज़रूरी है, जब तीसरे पक्ष के टूल के साथ Firebase API पासकोड का इस्तेमाल किया जा रहा हो या Firebase सेवा / प्रॉडक्ट के लिए सीधे REST ऐक्सेस का इस्तेमाल किया जा रहा हो.

** प्रॉडक्ट के SDK टूल के पुराने वर्शन के लिए ज़रूरी है. अगर SDK टूल का सबसे नया वर्शन इस्तेमाल किया जा रहा है, तो एपीआई को पासकोड की अनुमति वाली सूची में शामिल करने की ज़रूरत नहीं है.

समस्या का हल

अगर आपको API_KEY_SERVICE_BLOCKED गड़बड़ी या इनमें से कोई गड़बड़ी दिखती है, तो अक्सर पूछे जाने वाले सवालों के इस सेक्शन में दिए गए निर्देशों का पालन करें:

Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.

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

आपके वेब ऐप्लिकेशन में इस्तेमाल की गई एपीआई पासकोड पर, शायद "एपीआई से जुड़ी पाबंदियां" लागू हों. अगर ऐसा है, तो पक्का करें कि Firebase Management API, अनुमति वाले एपीआई की सूची में शामिल हो.

अमान्य एपीआई पासकोड की कुछ सबसे सामान्य वजहें यहां दी गई हैं:

  • एपीआई पासकोड पर "एपीआई पासकोड से जुड़ी पाबंदियां" लागू हैं. इनकी वजह से, यह पासकोड उस ऐप्लिकेशन के साथ काम नहीं करता जो इसका इस्तेमाल करने की कोशिश कर रहा है ("ऐप्लिकेशन से जुड़ी पाबंदियां") या जिस एपीआई को कॉल किया जा रहा है उसके साथ काम नहीं करता ("एपीआई से जुड़ी पाबंदियां").

  • Google Cloud कंसोल में प्रोजेक्ट से एपीआई पासकोड मिटा दिया गया था.

  • ऐप्लिकेशन की Firebase कॉन्फ़िगरेशन फ़ाइल/ऑब्जेक्ट में दिए गए प्रोजेक्ट आईडी के लिए, एपीआई कुंजी नहीं बनाई गई थी.

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