Firebase प्रोजेक्ट को समझना

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

Firebase प्रोजेक्ट, ऐप्लिकेशन, और प्रॉडक्ट के बीच का संबंध

Firebase प्रोजेक्ट, Firebase के लिए टॉप-लेवल इकाई है. किसी प्रोजेक्ट में, अपने Apple, Android या वेब ऐप्लिकेशन रजिस्टर किए जा सकते हैं. Firebase के साथ अपने ऐप्लिकेशन रजिस्टर करने के बाद, Analytics, Cloud Firestore, Performance Monitoring या Remote Config जैसे Firebase प्रॉडक्ट के लिए, जितने चाहें उतने Firebase SDK टूल जोड़े जा सकते हैं.

अपने प्लैटफ़ॉर्म के लिए, शुरू करने की गाइड में इस प्रोसेस के बारे में ज़्यादा जानें:
iOS+ | Android | वेब | Unity | C++ | Flutter.

Firebase प्रोजेक्ट की हैरारकी को समझना

Firebase प्रोजेक्ट की बुनियादी हैरारकी दिखाने वाला डायग्राम. इसमें प्रोजेक्ट, रजिस्टर किए गए ऐप्लिकेशन, और प्रोजेक्ट के लिए उपलब्ध कराए गए संसाधन और सेवाएं शामिल हैं इस डायग्राम में, Firebase प्रोजेक्ट की बुनियादी हैरारकी दिखाई गई है. यहां मुख्य संबंधों के बारे में बताया गया है:

  • Firebase प्रोजेक्ट, आपके सभी ऐप्लिकेशन और प्रोजेक्ट के लिए उपलब्ध संसाधनों और सेवाओं के कंटेनर की तरह होता है.

  • किसी Firebase प्रोजेक्ट में एक या उससे ज़्यादा Firebase ऐप्लिकेशन रजिस्टर किए जा सकते हैं. उदाहरण के लिए, किसी ऐप्लिकेशन के iOS और Android, दोनों वर्शन या किसी ऐप्लिकेशन के मुफ़्त और पैसे चुकाकर डाउनलोड किए जाने वाले, दोनों वर्शन.

  • एक ही Firebase प्रोजेक्ट में रजिस्टर किए गए सभी Firebase ऐप्लिकेशन, एक-दूसरे के साथ प्रोजेक्ट के लिए उपलब्ध सभी संसाधनों और सेवाओं को शेयर करते हैं और उनका ऐक्सेस रखते हैं. यहां कुछ उदाहरण दिए गए हैं:

    • एक ही Firebase प्रोजेक्ट में रजिस्टर किए गए सभी Firebase ऐप्लिकेशन, एक ही बैकएंड शेयर करते हैं. जैसे, Firebase Hosting, Authentication, Realtime Database, Cloud Firestore, Cloud Storage, और Cloud Functions.

    • एक ही Firebase प्रोजेक्ट में रजिस्टर किए गए सभी Firebase ऐप्लिकेशन, एक ही Google Analytics प्रॉपर्टी से जुड़े होते हैं. इस प्रॉपर्टी में, हर Firebase ऐप्लिकेशन एक अलग डेटा स्ट्रीम होता है.

Firebase प्रोजेक्ट और Google Cloud के बीच का संबंध

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

ध्यान दें कि Firebase सभी Firebase प्रोजेक्ट के लिए, Google Cloud कंसोल में आपके प्रोजेक्ट के लिए, लेबल पेज में firebase:enabled का लेबल अपने-आप जोड़ देता है. इस लेबल के बारे में ज़्यादा जानने के लिए, अक्सर पूछे जाने वाले सवाल लेख पढ़ें.

Firebase प्रोजेक्ट, Google Cloud प्रोजेक्ट है, इसलिए:

  • किसी प्रोजेक्ट के साथ Firebase कंसोल के साथ-साथ, Google Cloud कंसोल और Google API कंसोल में भी इंटरैक्ट किया जा सकता है.

  • किसी प्रोजेक्ट में, Firebase और Google Cloud, दोनों के प्रॉडक्ट और एपीआई का इस्तेमाल किया जा सकता है.

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

  • किसी प्रोजेक्ट के लिए बिलिंग की जानकारी, Firebase और Google Cloud, दोनों के साथ शेयर की जाती है. अगर आपके Google Cloud प्रोजेक्ट पर बिलिंग की सुविधा चालू है, तो आपका Firebase प्रोजेक्ट, Firebase के 'इस्तेमाल के हिसाब से पैसे चुकाएं' Blaze प्लान पर होगा.

  • किसी प्रोजेक्ट के यूनीक आइडेंटिफ़ायर (जैसे, प्रोजेक्ट नंबर और प्रोजेक्ट आईडी), Firebase और Google Cloud के साथ शेयर किए जाते हैं.

  • किसी प्रोजेक्ट को मिटाने पर, वह Firebase और Google Cloud से भी मिट जाता है.

  • किसी प्रोजेक्ट में मौजूद संसाधन या डेटा को मिटाने या उसमें बदलाव करने पर, यह बदलाव Firebase और Google Cloud में भी लागू हो जाता है.

Firebase प्रोजेक्ट सेट अप करना और ऐप्लिकेशन रजिस्टर करना

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

प्रोडक्शन ऐप्लिकेशन के लिए, आपको डेवलपमेंट वर्कफ़्लो को साफ़ तौर पर सेट अप करना होगा. आम तौर पर, इसमें एक से ज़्यादा एनवायरमेंट का इस्तेमाल होता है. डेवलपर वर्कफ़्लो के बारे में हमारा दस्तावेज़ पढ़ें. इसमें सामान्य सबसे सही तरीके और सुरक्षा के सामान्य दिशा-निर्देश शामिल हैं. इनका इस्तेमाल करके, Firebase प्रोजेक्ट सेट अप करें और ऐप्लिकेशन रजिस्टर करें, ताकि डेवलपमेंट वर्कफ़्लो बनाया जा सके.

Firebase प्रोजेक्ट के साथ इंटरैक्ट करना

प्रॉडक्ट SDK टूल के अलावा, कई अलग-अलग टूल और इंटरफ़ेस का इस्तेमाल करके, सीधे Firebase प्रोजेक्ट के साथ इंटरैक्ट किया जा सकता है.

Firebase कंसोल

Firebase कंसोल, Firebase प्रॉडक्ट, ऐप्लिकेशन, और प्रोजेक्ट-लेवल की सेटिंग को मैनेज करने के लिए सबसे बेहतरीन प्लैटफ़ॉर्म उपलब्ध कराता है.

<span class=Firebase कंसोल - प्रोजेक्ट की खास जानकारी वाली स्क्रीन" class="attempt-right screenshot" style="max-width: calc((100% - 40px)/1.75);">

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

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

ध्यान दें कि Firebase प्रोजेक्ट भी एक Google Cloud प्रोजेक्ट है. इसलिए, आपको कई टास्क या प्रॉडक्ट के लिए, Firebase कंसोल के बजाय Google Cloud कंसोल का इस्तेमाल करना पड़ सकता है.

Firebase सीएलआई (कमांड-लाइन टूल)

Firebase, Firebase Hosting, Cloud Functions for Firebase, और Firebase Extensions जैसे खास Firebase प्रॉडक्ट को कॉन्फ़िगर करने और मैनेज करने के लिए, Firebase CLI भी उपलब्ध कराता है.

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

Firebase Management REST API

Firebase मैनेजमेंट REST API का इस्तेमाल करके, प्रोग्राम के हिसाब से Firebase प्रोजेक्ट को मैनेज किया जा सकता है. उदाहरण के लिए, प्रोग्राम के ज़रिए किसी ऐप्लिकेशन को प्रोजेक्ट के साथ रजिस्टर किया जा सकता है. इसके अलावा, पहले से रजिस्टर किए गए ऐप्लिकेशन की सूची भी देखी जा सकती है (iOS+ | Android | वेब).

Firebase प्रोजेक्ट आइडेंटिफ़ायर

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

प्रोजेक्ट का नाम

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

Firebase कंसोल के प्रोजेक्ट की सेटिंग में जाकर, किसी भी समय प्रोजेक्ट के नाम में बदलाव किया जा सकता है. प्रोजेक्ट का नाम सबसे ऊपर मौजूद पैनल में दिखता है.

प्रोजेक्ट नंबर

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

प्रोजेक्ट नंबर में बदलाव नहीं किया जा सकता. किसी प्रोजेक्ट को मिटाने पर, प्रोजेक्ट नंबर भी मिट जाता है. साथ ही, किसी दूसरे प्रोजेक्ट के लिए इसका इस्तेमाल फिर कभी नहीं किया जा सकता.

प्रोजेक्ट आईडी

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

Firebase कॉन्फ़िगरेशन फ़ाइलें और ऑब्जेक्ट

किसी ऐप्लिकेशन को Firebase प्रोजेक्ट के साथ रजिस्टर करने पर, Firebase कंसोल आपको Firebase कॉन्फ़िगरेशन फ़ाइल (Apple/Android ऐप्लिकेशन) या कॉन्फ़िगरेशन ऑब्जेक्ट (वेब ऐप्लिकेशन) उपलब्ध कराता है. इसे सीधे अपनी लोकल ऐप्लिकेशन डायरेक्ट्री में जोड़ा जाता है.

  • Apple के ऐप्लिकेशन के लिए, GoogleService-Info.plist कॉन्फ़िगरेशन फ़ाइल जोड़ी जाती है.
  • Android ऐप्लिकेशन के लिए, google-services.json कॉन्फ़िगरेशन फ़ाइल जोड़ी जाती है.
  • वेब ऐप्लिकेशन के लिए, Firebase कॉन्फ़िगरेशन ऑब्जेक्ट जोड़ा जाता है.

आपके पास किसी भी समय, किसी ऐप्लिकेशन की Firebase कॉन्फ़िगरेशन फ़ाइल या ऑब्जेक्ट को ऐक्सेस करने का विकल्प होता है.

को चलाएं.

Firebase कॉन्फ़िगरेशन फ़ाइल या ऑब्जेक्ट, किसी ऐप्लिकेशन को किसी खास Firebase प्रोजेक्ट और उसके संसाधनों (डेटाबेस, स्टोरेज बकेट वगैरह) से जोड़ता है. कॉन्फ़िगरेशन में "Firebase के विकल्प" शामिल होते हैं. ये ऐसे पैरामीटर होते हैं जो Firebase और Google की सेवाओं के लिए ज़रूरी होते हैं. इनकी मदद से, Firebase सर्वर एपीआई के साथ कम्यूनिकेट किया जाता है और क्लाइंट डेटा को Firebase प्रोजेक्ट और Firebase ऐप्लिकेशन से जोड़ा जाता है. यहां "Firebase के विकल्प" के लिए ज़रूरी कम से कम वैल्यू दी गई हैं:

  • एपीआई पासकोड: एन्क्रिप्ट की गई एक आसान स्ट्रिंग. इसका इस्तेमाल, कुछ ऐसे एपीआई को कॉल करते समय किया जाता है जिन्हें उपयोगकर्ता के निजी डेटा को ऐक्सेस करने की ज़रूरत नहीं होती. उदाहरण के लिए: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO

  • प्रोजेक्ट आईडी: Firebase और Google Cloud के सभी प्रोजेक्ट के लिए, उपयोगकर्ता का तय किया गया यूनीक आइडेंटिफ़ायर. यह आइडेंटिफ़ायर, कुछ Firebase संसाधनों के यूआरएल या नामों में दिख सकता है. हालांकि, आम तौर पर इसे प्रोजेक्ट का रेफ़रंस देने के लिए, एक आसान उपनाम माना जाना चाहिए. (उदाहरण के लिए वैल्यू: myapp-project-123)

  • ऐप्लिकेशन आईडी ("AppID"): Firebase के सभी प्लैटफ़ॉर्म पर, Firebase ऐप्लिकेशन के लिए यूनीक आइडेंटिफ़ायर. यह प्लैटफ़ॉर्म के हिसाब से फ़ॉर्मैट में होता है:

    • Firebase के Apple ऐप्लिकेशन: GOOGLE_APP_ID (उदाहरण के लिए वैल्यू: 1:1234567890:ios:321abc456def7890)
      यह Apple बंडल आईडी नहीं है.
    • Firebase के Android ऐप्लिकेशन: mobilesdk_app_id (उदाहरण के लिए वैल्यू: 1:1234567890:android:321abc456def7890)
      यह Android पैकेज का नाम या Android ऐप्लिकेशन आईडी नहीं है.
    • Firebase वेब ऐप्लिकेशन: appId (उदाहरण के लिए वैल्यू: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

Firebase कॉन्फ़िगरेशन फ़ाइल या ऑब्जेक्ट का कॉन्टेंट सार्वजनिक माना जाता है. इसमें ऐप्लिकेशन के प्लैटफ़ॉर्म के हिसाब से आईडी (Apple बंडल आईडी या Android पैकेज का नाम) और Firebase प्रोजेक्ट के हिसाब से वैल्यू शामिल हैं. जैसे, एपीआई पासकोड, प्रोजेक्ट आईडी, Realtime Database यूआरएल, और Cloud Storage बकेट का नाम. इसलिए, Realtime Database, Cloud Firestore, और Cloud Storage में अपने डेटा और फ़ाइलों को सुरक्षित रखने के लिए, Firebase Security Rules का इस्तेमाल करें.

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

Firebase प्रोजेक्ट, ऐप्लिकेशन, और साइटों के लिए सामान्य सीमाएं

Firebase प्रोजेक्ट, ऐप्लिकेशन, और साइटों के लिए कुछ सामान्य सीमाएं यहां दी गई हैं:

  • हर खाते के लिए प्रोजेक्ट की संख्या

    • Spark की सदस्यता का प्लान — प्रोजेक्ट बनाने का कोटा, कम प्रोजेक्ट (आम तौर पर 5 से 10) तक सीमित है.
    • Blaze प्राइसिंग प्लान — जब तक Cloud Billing खाते की स्थिति अच्छी रहती है, तब तक हर खाते के लिए प्रोजेक्ट बनाने का कोटा काफ़ी बढ़ जाता है.

    ज़्यादातर डेवलपर के लिए, प्रोजेक्ट बनाने के कोटे की सीमा कोई समस्या नहीं होती. हालांकि, ज़रूरत पड़ने पर, प्रोजेक्ट के कोटे को बढ़ाने का अनुरोध किया जा सकता है.

    ध्यान रखें कि किसी प्रोजेक्ट को पूरी तरह मिटाने में 30 दिन लगते हैं. साथ ही, प्रोजेक्ट को पूरी तरह मिटाए जाने तक, वह प्रोजेक्ट कोटा में शामिल रहता है.

  • हर प्रोजेक्ट में ऐप्लिकेशन की संख्या

    Firebase, किसी Firebase प्रोजेक्ट में 30 से ज़्यादा Firebase ऐप्लिकेशन जोड़ने की अनुमति नहीं देता.

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

    अक्सर पूछे जाने वाले सवालों में, हर प्रोजेक्ट के लिए ऐप्लिकेशन की सीमा के बारे में ज़्यादा जानें.

  • हर प्रोजेक्ट के लिए Hosting साइटों की संख्या

    Firebase Hosting मल्टीसाइट सुविधा के तहत, हर प्रोजेक्ट के लिए ज़्यादा से ज़्यादा 36 साइटें जोड़ी जा सकती हैं.

अपना ऐप्लिकेशन लॉन्च करना