Firebase के लॉन्च की चेकलिस्ट

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

रिलीज़ करने के सबसे सही तरीके

  • पक्का करें कि आपने प्रोडक्शन में डिप्लॉय करने से पहले, Firebase Local Emulator Suite (इस्तेमाल किए जा सकने वाले प्रॉडक्ट के लिए) में अपने सभी बदलावों की जांच कर ली हो. अच्छी तरह से जांच करने से, भारी नुकसान का जोखिम कम होता है.

  • Firebase App Check को लागू करने की सुविधा देने वाली हर सेवा के लिए, इसे लागू करना शुरू करें. App Check यह पक्का करने में मदद करता है कि सिर्फ़ आपके असली ऐप्लिकेशन ही आपकी बैकएंड सेवाओं और संसाधनों को ऐक्सेस कर सकें.

  • Firebase की सामान्य सुरक्षा चेकलिस्ट देखें.

  • अपने ऐप्लिकेशन के लिए नई सुविधाओं और अपडेट को सुरक्षित तरीके से और धीरे-धीरे रिलीज़ करने के लिए, Firebase Remote Config रोलआउट का इस्तेमाल करें.

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

कीमत के प्लान की सीमाएं जानना और बजट से जुड़ी सूचनाएं सेट करना

  • पक्का करें कि प्रोडक्शन में जाने के बाद, इस्तेमाल करने की सीमाओं और कोटे का उल्लंघन न हो. खास तौर पर, अगर आपने बिना किसी शुल्क वाला Spark प्लान लिया है. इस्तेमाल के हिसाब से पैसे चुकाने वाले ब्लेज़ प्लान पर अपग्रेड करें.

  • अपने प्रोजेक्ट के लिए, बजट से जुड़ी सूचनाएं सेट अप करें.

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

    • ऐडवांस सूचनाएं और कार्रवाइयां सेट अप करें. जैसे, ऐसे फ़ंक्शन जो सूचनाओं के जवाब में बिलिंग को बंद कर देंगे.

    • अगर Firebase AI Logic, Firebase App Hosting, Cloud Functions for Firebase, और Firebase Extensions का इस्तेमाल किया जाता है, तो हमारा सुझाव है कि आप खर्च की सीमाएं भी सेट अप करें. इससे, अगर आपका प्रोजेक्ट उस सेवा के लिए सेट किए गए बजट तक पहुंच जाता है, तो लागू होने वाली सेवा को रोक दिया जाएगा.

  • Firebase कंसोल में, प्रॉडक्ट के हिसाब से बने डैशबोर्ड या मुख्य इस्तेमाल और बिलिंग डैशबोर्ड में जाकर, अपने इस्तेमाल पर नज़र रखें.

पक्का करें कि आपके Firebase प्रोजेक्ट और ऐप्लिकेशन, सबसे सही तरीकों का पालन करते हों

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

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

  • डेवलपमेंट, टेस्टिंग, और प्रोडक्शन के लिए अलग-अलग Firebase प्रोजेक्ट इस्तेमाल करें.

    अपने प्रोडक्शन ऐप्लिकेशन से जुड़े प्रोजेक्ट को अनचाहे ऐक्सेस से बचाने की कोशिश करें. डेवलपमेंट वर्कफ़्लो सेट अप करने के बारे में ज़्यादा जानें.

  • अपने ज़रूरी प्रोजेक्ट को सुरक्षित रखें. खास तौर पर, प्रोडक्शन ऐप्लिकेशन से जुड़े प्रोजेक्ट को.

    • प्रोजेक्ट को गलती से मिटने से बचाने के लिए, प्रोजेक्ट लियन का इस्तेमाल करें.

    • Firebase कंसोल में "Prod" टैग लागू करें, ताकि आपके प्रोडक्शन एनवायरमेंट को आसानी से पहचाना जा सके.

  • अगर आपने अब तक ऐसा नहीं किया है, तो Google Cloud संगठन सेट अप करें और उसमें अपने Firebase प्रोजेक्ट जोड़ें.

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

  • प्रोजेक्ट के सदस्यों (यानी "प्रिंसिपल") को अलग-अलग जोड़ने के बजाय, Google ग्रुप के तौर पर जोड़ें.

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

  • प्रोजेक्ट के हर सदस्य (यानी "प्रिंसिपल") को अपने Firebase प्रोजेक्ट और संसाधनों का सही लेवल का ऐक्सेस दें. ज़्यादा जानने के लिए, Firebase IAM की मदद से प्रोजेक्ट का ऐक्सेस मैनेज करना लेख पढ़ें.

  • पक्का करें कि प्रोजेक्ट के हर सदस्य (यानी "प्रिंसिपल") ने खास प्रॉडक्ट या प्रोजेक्ट की स्थिति (जैसे, बिलिंग प्लान में बदलाव या कोटे की सीमाएं) के बारे में सूचनाएं पाने के लिए, अपनी प्राथमिकताएं सेट अप की हों. ज़्यादा जानने के लिए, Firebase से सूचनाएं पाना लेख पढ़ें.

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

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

अपने ऐप्लिकेशन में इस्तेमाल की जाने वाली खास सेवाओं को तैयार करना

आपके ऐप्लिकेशन में इस्तेमाल किए गए हर प्रॉडक्ट और सेवा के लिए, प्रोडक्शन में इस्तेमाल किए जाने पर कुछ खास बातों का ध्यान रखना पड़ सकता है.

Firebase AI Logic

Google Analytics

  • Google Analytics के लिए ऑडियंस की शर्तें तय करें, ताकि ऐप्लिकेशन के लॉन्च होने के बाद से ही, Analytics डेटा इकट्ठा करना शुरू किया जा सके.

  • BigQuery में Google Analytics डेटा को एक्सपोर्ट करने की सुविधा चालू करें, ताकि BigQuery SQL की मदद से डेटा का विश्लेषण किया जा सके या अपने टूल के साथ इस्तेमाल करने के लिए डेटा एक्सपोर्ट किया जा सके.

  • उपयोगकर्ता प्रॉपर्टी को ऐसी जानकारी तक सीमित रखें जो आपके पूरे ऐप्लिकेशन की लाइफ़साइकल के लिए काम की हो. उपयोगकर्ता प्रॉपर्टी बनाने की एक तय सीमा होती है. साथ ही, उन्हें संग्रहित नहीं किया जा सकता.

  • अपनी Google Analytics प्रॉपर्टी और खातों के लिए, Google Analytics भूमिकाओं की सेटिंग की समीक्षा करें. इन अनुमतियों को Firebase प्रोजेक्ट की आईएएम अनुमतियों और भूमिकाओं से अलग मैनेज किया जाता है.

  • पक्का करें कि Firebase कंसोल की प्रोजेक्ट सेटिंग में, आपका ऐप स्टोर आईडी और टीम आईडी (अगर ज़रूरी हो) सही हो.

App Check

  • पक्का करें कि Firebase कंसोल की प्रोजेक्ट सेटिंग में आपका टीम आईडी सही हो.

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

Authentication

  • जिन सेवाओं का इस्तेमाल नहीं किया जा रहा है उन्हें बंद करें. खास तौर पर, पहचान छिपाकर पुष्टि करने की सुविधा को बंद करें.

  • अगर आपका ऐप्लिकेशन, 'Google से साइन इन करें' सुविधा का इस्तेमाल करता है, तो अपनी OAuth सहमति स्क्रीन को अपने हिसाब से बनाएं.

  • Authentication ईमेल भेजने की सेवा के लिए, अपने डोमेन और ईमेल भेजने वाले व्यक्ति के नाम को पसंद के मुताबिक बनाएं.

  • अगर Identity Platform की एसएमएस से पुष्टि करने वाली सेवाओं का इस्तेमाल किया जा रहा है, तो Firebase App Check को लागू करना शुरू करें. साथ ही, एसएमएस के गलत इस्तेमाल से अपने ऐप्लिकेशन को सुरक्षित रखने के लिए, एसएमएस क्षेत्र की नीति कॉन्फ़िगर करें.

  • Apple प्लैटफ़ॉर्म पर, सामान्य Authentication गड़बड़ियों को ठीक करने की सुविधा लागू करें.

  • Firebase कंसोल की प्रोजेक्ट सेटिंग में जाकर, अपने ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट के लिए, रिलीज़ SHA-1 हैश जोड़ें. अगर आपका ऐप्लिकेशन, फ़ोन नंबर से साइन इन करने की सुविधा या 'Google से साइन इन करें' सुविधा का इस्तेमाल करता है, तो SHA-1 हैश ज़रूरी है. 'Google से साइन इन करें' सुविधा के लिए, OAuth क्लाइंट आईडी की ज़रूरत होती है.

  • अपने डोमेन के लिए ऐक्सेस कंट्रोल की सुविधा जोड़ें, ताकि कोई व्यक्ति बिना अनुमति के उनका इस्तेमाल न कर पाए. खास तौर पर, Firebase कंसोल के Authentication सेक्शन में जाकर, अपने प्रोडक्शन डोमेन का ऐक्सेस दें. यह तब खास तौर पर ज़रूरी होता है, जब Firebase Security Rules पर निर्भर रहने वाले प्रॉडक्ट इस्तेमाल किए जा रहे हों.

Cloud Firestore

  • अनजाने में डेटा ऐक्सेस होने से रोकने के लिए, अपने Cloud Firestore Security Rules को कॉन्फ़िगर करें.

  • रिलीज़ के लिए तैयार बिल्ड में, कोड छोटा करने के लिए ProGuard का इस्तेमाल करें. ProGuard के बिना, Cloud Firestore SDK टूल और इसकी डिपेंडेंसी से आपके APK का साइज़ बढ़ सकता है.

Cloud Messaging

  • Cloud Messaging के डेटा को BigQuery में एक्सपोर्ट करने की सुविधा चालू करें, ताकि BigQuery SQL की मदद से अपने डेटा का विश्लेषण किया जा सके. इसके अलावा, अपने टूल के साथ इस्तेमाल करने के लिए डेटा एक्सपोर्ट किया जा सके.

  • Firebase कंसोल में जाकर, Apple ऐप्लिकेशन पर Cloud Messaging के लिए APNS की पुष्टि करने वाली कुंजी अपलोड करें. अगर APNS सर्टिफ़िकेट का इस्तेमाल किया जा रहा है, तो पक्का करें कि आपका प्रोडक्शन APNS सर्टिफ़िकेट अपलोड किया गया हो.

  • Cloud Messaging के लिए क्लाउड ऑडिट लॉगिंग की सुविधा चालू करें, ताकि आपके पास ऐसे ऑडिट लॉग जनरेट करने का विकल्प हो जो आपके Google Cloud संसाधनों में एडमिन और ऐक्सेस से जुड़ी गतिविधियों को रिकॉर्ड करते हैं.

  • समय-समय पर एसडीके के नए वर्शन पर अपडेट करते रहें, ताकि आपको नई सुविधाएं और सुरक्षा से जुड़े अपडेट मिलते रहें.

  • अपने ऐप्लिकेशन सर्वर पर, Cloud Messaging रजिस्ट्रेशन टोकन मैनेज करने के सबसे सही तरीके अपनाएं. टाइमस्टैंप के साथ रजिस्ट्रेशन टोकन सेव करें, बदलाव होने पर उन्हें अपडेट करें, और पुराने टोकन (एक महीने से ज़्यादा समय से इस्तेमाल नहीं किए जा रहे) हटाएं. इससे यह पक्का किया जा सकेगा कि डिलीवरी की रिपोर्टिंग मान्य है और मैसेज को सही तरीके से टारगेट किया जा रहा है.

  • बड़े पैमाने पर Cloud Messaging मैसेज भेजने के सबसे सही तरीके अपनाएं. एचटीटीपी v1 एपीआई या Firebase Admin SDK का इस्तेमाल करें. साथ ही, फिर से कोशिश करने के लिए, जिटर के साथ एक्स्पोनेंशियल बैकऑफ़ लागू करें. इसके अलावा, ट्रैफ़िक में अचानक बढ़ोतरी और अनुरोध संख्या सीमित करने से बचने के लिए, Retry-After हेडर का पालन करें.

Cloud Storage

  • अपने Cloud Storage Security Rules को कॉन्फ़िगर करें, ताकि अनजाने में डेटा ऐक्सेस न हो जाए.

Crashlytics

  • पक्का करें कि प्रोजेक्ट का हर सदस्य (यानी "प्रिंसिपल") Crashlytics या प्रोजेक्ट की स्थिति (जैसे, बिलिंग प्लान में बदलाव या कोटे की सीमाएं) के बारे में सूचनाएं पाने के लिए, अपनी प्राथमिकताएं सेट अप करे. ज़्यादा जानने के लिए, Firebase से सूचनाएं पाना लेख पढ़ें.

  • BigQuery में Crashlytics डेटा को एक्सपोर्ट करने की सुविधा चालू करें, ताकि BigQuery SQL की मदद से डेटा का विश्लेषण किया जा सके या अपने टूल के साथ इस्तेमाल करने के लिए डेटा एक्सपोर्ट किया जा सके.

  • (सिर्फ़ नेटिव Android और iOS के लिए) Crashlytics में एआई असिस्टेंट को चालू करें. इससे आपको यह समझने में मदद मिलेगी कि क्रैश क्यों हुआ और इसके लिए क्या करना चाहिए.

  • Crashlytics में इस्तेमाल करने के लिए, रिलीज़ के लिए तैयार बिल्ड की dSYM फ़ाइल अपलोड करें. पक्का करें कि Xcode, dSYM को अपने-आप प्रोसेस कर सके और फ़ाइलें अपलोड कर सके.

  • Crashlytics में इस्तेमाल करने के लिए, रिलीज़ के लिए तैयार बिल्ड की ProGuard मैपिंग अपलोड करें. Firebase सीएलआई का इस्तेमाल करके, डेटा अपलोड किया जा सकता है.

  • Firebase को Google Play से लिंक करें, ताकि आपको अपने Android ऐप्लिकेशन की परफ़ॉर्मेंस के बारे में ज़्यादा जानकारी मिल सके. उदाहरण के लिए, Google Play ट्रैक के हिसाब से अपने ऐप्लिकेशन की क्रैश रिपोर्ट फ़िल्टर की जा सकती हैं. इससे आपको डैशबोर्ड पर खास बिल्ड पर बेहतर तरीके से फ़ोकस करने में मदद मिलती है.

  • Android को टारगेट करने वाले और IL2CPP का इस्तेमाल करने वाले बिल्ड के लिए, पक्का करें कि आपने हर उस बिल्ड के लिए नेटिव सिंबल अपलोड किए हों जिसके लिए आपको सिंबल चाहिए. भले ही, कोड या कॉन्फ़िगरेशन में कोई बदलाव किया गया हो या नहीं.

Firebase ML

Performance Monitoring

  • पक्का करें कि प्रोजेक्ट के हर सदस्य (जिसे "प्रिंसिपल" भी कहा जाता है) ने Performance Monitoring या प्रोजेक्ट की स्थिति (जैसे, बिलिंग प्लान में बदलाव या कोटा की सीमाएं) के बारे में सूचनाएं पाने के लिए, अपनी प्राथमिकताएं सेट अप की हों. ज़्यादा जानने के लिए, Firebase से सूचनाएं पाना लेख पढ़ें.

  • BigQuery में Performance Monitoring डेटा को एक्सपोर्ट करने की सुविधा चालू करें, ताकि BigQuery SQL की मदद से डेटा का विश्लेषण किया जा सके या अपने टूल के साथ इस्तेमाल करने के लिए डेटा एक्सपोर्ट किया जा सके.

Realtime Database

  • अपने Realtime Database Security Rules को कॉन्फ़िगर करें, ताकि अनजाने में डेटा ऐक्सेस न हो जाए.

  • पक्का करें कि आप कारोबार को आगे बढ़ाने के लिए तैयार हों. Realtime Database में डिफ़ॉल्ट कोटा इतना ज़्यादा होता है कि ज़्यादातर ऐप्लिकेशन के लिए यह काफ़ी होता है. हालांकि, कुछ ऐप्लिकेशन को ज़्यादा कोटा की ज़रूरत पड़ सकती है.

  • proguard के नियमों को कॉन्फ़िगर करें, ताकि वे Realtime Database के साथ काम कर सकें.

Remote Config

  • पक्का करें कि एक्सपेरिमेंट के तौर पर इस्तेमाल किए जा रहे Remote Config नियमों का असर, आपके रिलीज़ किए गए ऐप्लिकेशन के उपयोगकर्ताओं पर न पड़े. साथ ही, आपके ऐप्लिकेशन में सही सर्वर और इन-ऐप्लिकेशन डिफ़ॉल्ट डिस्ट्रिब्यूट किए गए हों.

  • Remote Config में minimum_version पैरामीटर कॉन्फ़िगर करें, ताकि अगर ऐप्लिकेशन के पुराने वर्शन काम न करें या बंद हो जाएं, तो उपयोगकर्ताओं को ऐप्लिकेशन अपडेट करने के लिए कहा जा सके या उन्हें ऐसा करने के लिए ज़रूरी बनाया जा सके.