Apple प्लैटफ़ॉर्म के लिए Firebase App Check

1. शुरुआती जानकारी

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

Firebase दस्तावेज़ में, Firebase App Check के बारे में ज़्यादा जानकारी मिल सकती है.

App Check, किसी ऐप्लिकेशन और/या डिवाइस के इंटिग्रिटी की पुष्टि करने के लिए, प्लैटफ़ॉर्म के मुताबिक खास सेवाओं का इस्तेमाल करता है. इन सेवाओं को प्रमाणित करने वाली कंपनियां कहा जाता है. Apple की App Attest सेवा ऐसी ही एक सेवा है. इसका इस्तेमाल करके Apple के ऐप्लिकेशन और डिवाइसों की प्रामाणिकता की पुष्टि की जा सकती है.

आपको क्या बनाना होगा

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

आपको इनके बारे में जानकारी मिलेगी

  • किसी मौजूदा ऐप्लिकेशन में, Firebase App Check को जोड़ने का तरीका.
  • Firebase ऐप्लिकेशन की जांच के लिए, पुष्टि करने वाली अलग-अलग कंपनियों को इंस्टॉल करने का तरीका.
  • अपने ऐप्लिकेशन के लिए, ऐप्लिकेशन की पुष्टि करने वाली सुविधा को कॉन्फ़िगर करने का तरीका.
  • ऐप्लिकेशन डेवलपमेंट के दौरान, सिम्युलेटर पर अपने ऐप्लिकेशन की जांच करने के लिए, डीबग करने की पुष्टि करने वाली कंपनी को कॉन्फ़िगर करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी

  • Xcode 13.3.1 या इसके बाद का वर्शन
  • Apple Developer खाता, जिसकी मदद से नए ऐप्लिकेशन आइडेंटिफ़ायर बनाए जा सकते हैं
  • ऐप्लिकेशन अटेस्ट की सुविधा के साथ काम करने वाला iOS/iPadOS डिवाइस (App Attest API की उपलब्धता के बारे में जानें)

2. शुरुआती प्रोजेक्ट पाएं

iOS रिपॉज़िटरी के लिए Firebase Quickstart में, अलग-अलग Firebase प्रॉडक्ट के बारे में जानकारी देने के लिए सैंपल ऐप्लिकेशन शामिल होते हैं. इस कोडलैब के बेस के तौर पर, SwiftUI के लिए Firebase डेटाबेस के क्विकस्टार्ट ऐप्लिकेशन का इस्तेमाल किया जा सकता है.

कमांड लाइन से, iOS रिपॉज़िटरी के लिए Firebase क्विकस्टार्ट का क्लोन बनाएं:

git clone https://github.com/firebase/quickstart-ios.git
cd quickstart-ios

Xcode में रीयलटाइम डेटाबेस SwiftUI Quickstart ऐप्लिकेशन प्रोजेक्ट खोलें:

cd database/DatabaseExampleSwiftUI/DatabaseExample
xed .

3. अपने ऐप्लिकेशन में, ऐप्लिकेशन की जांच करने की सुविधा जोड़ें

  1. प्रोजेक्ट की डिपेंडेंसी के समाधान के लिए, Swift Package Manager का इंतज़ार करें.
  2. DatabaseExample (iOS) ऐप्लिकेशन टारगेट का सामान्य टैब खोलें. इसके बाद, फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट सेक्शन में, + बटन पर क्लिक करें.
  3. FirebaseAppCheck को जोड़ने के लिए चुनें.

4. ऐप्लिकेशन जांच की सुविधा देने वाली कंपनी की फ़ैक्ट्री बनाएं और इंस्टॉल करें

  1. Shared फ़ाइल ग्रुप में, AppCheck नाम का नया ग्रुप जोड़ें.
  2. इस ग्रुप में, किसी अलग फ़ाइल में फ़ैक्ट्री क्लास बनाएं, जैसे कि MyAppCheckProviderFactory.swift और इसे DatabaseExample (iOS) टारगेट में जोड़ना न भूलें:
    import Firebase
    
    class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
      func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
        #if targetEnvironment(simulator)
          // App Attest is not available on simulators.
          // Use a debug provider.
          return AppCheckDebugProvider(app: app)
        #else
          // Use App Attest provider on real devices.
          return AppAttestProvider(app: app)
        #endif
      }
    }
    
  3. इसके बाद, DatabaseExampleApp.swift में, FirebaseAppCheck को इंपोर्ट करना न भूलें. साथ ही, MyAppCheckProviderFactory क्लास के इंस्टेंस को, ऐप्लिकेशन की जांच करने वाली कंपनी की फ़ैक्ट्री के तौर पर सेट करें.
    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct DatabaseExampleApp: App {
      init() {
        // Set an instance of MyAppCheckProviderFactory as an App Check
        // provider factory before configuring Firebase.
        AppCheck.setAppCheckProviderFactory(MyAppCheckProviderFactory())
        FirebaseApp.configure()
      }
      ...
    }
    

5. Firebase प्रोजेक्ट बनाना और उसे कॉन्फ़िगर करना

अपने iOS प्रोजेक्ट में ऐप्लिकेशन की जांच करने की सुविधा का इस्तेमाल करने के लिए, आपको Firebase कंसोल में यह तरीका अपनाना होगा:

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

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

सबसे पहले, आपको एक Firebase प्रोजेक्ट बनाना होगा.

  1. Firebase कंसोल में, प्रोजेक्ट जोड़ें चुनें.
  2. अपने प्रोजेक्ट को App Check Codelab नाम दें
  3. जारी रखें पर क्लिक करें.
  4. इस प्रोजेक्ट के लिए Google Analytics को बंद करें. इसके बाद, प्रोजेक्ट बनाएं पर क्लिक करें.

रीयलटाइम डेटाबेस इंस्टेंस बनाना

अब, Firebase कंसोल के रीयल टाइम डेटाबेस सेक्शन पर जाएं.

  1. डेटाबेस बनाने का वर्कफ़्लो शुरू करने के लिए, डेटाबेस बनाएं बटन पर क्लिक करें.
  2. डेटाबेस की डिफ़ॉल्ट जगह (us-central1) में कोई बदलाव न करें और आगे बढ़ें पर क्लिक करें.
  3. पक्का करें कि आपने लॉक मोड को चुना हो. इसके बाद, अपने डेटाबेस के लिए सुरक्षा के नियम चालू करने के लिए, चालू करें बटन पर क्लिक करें.
  4. रीयलटाइम डेटाबेस ब्राउज़र के नियम टैब पर जाएं और डिफ़ॉल्ट नियमों को नीचे दी गई जानकारी से बदलें:
    {
        "rules": {
            // User profiles are only readable/writable by the user who owns it
            "users": {
                "$UID": {
                    ".read": "auth.uid == $UID",
                    ".write": "auth.uid == $UID"
                }
            },
            // Posts can be read by anyone but only written by logged-in users.
            "posts": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    // UID must match logged in user and is fixed once set
                    "uid": {
                        ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                    },
                    // User can only update own stars
                    "stars": {
                        "$UID": {
                            ".validate": "auth.uid == $UID"
                        }
                    }
                }
            },
            // User posts can be read by anyone but only written by the user that owns it,
            // and with a matching UID
            "user-posts": {
                ".read": true,
                "$UID": {
                    "$POSTID": {
                        ".write": "auth.uid == $UID",
                        ".validate": "data.exists() || newData.child('uid').val() == auth.uid"
                    }
                }
            },
            // Comments can be read by anyone but only written by a logged in user
            "post-comments": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    "$COMMENTID": {
                        // UID must match logged in user and is fixed once set
                        "uid": {
                            ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                        }
                    }
                }
            }
        }
    }
    
  5. अपडेट किए गए सुरक्षा नियमों को चालू करने के लिए, पब्लिश करें बटन पर क्लिक करें.

Firebase से कनेक्ट करने के लिए, अपना iOS ऐप्लिकेशन तैयार करना

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

  1. Xcode में, प्रोजेक्ट नेविगेटर में DatabaseExample प्रोजेक्ट चुनें.
  2. DatabaseExample (iOS) टारगेट चुनें और साइन इन और सुविधाएं टैब.
  3. आपको गड़बड़ी का यह मैसेज दिखेगा जिसमें लिखा होगा " DatabaseExample (iOS) के लिए साइन इन करने के लिए डेवलपमेंट टीम की ज़रूरत है".
  4. बंडल आइडेंटिफ़ायर को किसी यूनीक आइडेंटिफ़ायर में अपडेट करें. ऐसा करने का सबसे आसान तरीका यह है कि आप अपनी वेबसाइट के रिवर्स डोमेन नेम का इस्तेमाल करें. उदाहरण के लिए, com.acme.samples.firebase.quickstart.DatabaseExample (कृपया इस आईडी का इस्तेमाल न करें. इसके बजाय, अपना यूनीक आईडी चुनें).
  5. अपनी डेवलपमेंट टीम चुनें.
  6. Xcode जब "प्रोविज़निंग प्रोफ़ाइल: Xcode से मैनेज की जा रही प्रोफ़ाइल" दिखाता है, तो आपको पता चल जाएगा कि सब कुछ ठीक हो गया है और इस लेबल के आगे एक जानकारी आइकन मिलेगा. इस आइकॉन पर क्लिक करने पर, प्रावधान प्रोफ़ाइल के बारे में ज़्यादा जानकारी दिखेगी.

अपना iOS ऐप्लिकेशन कनेक्ट करें

अपने ऐप्लिकेशन को कनेक्ट करने के बारे में ज़्यादा जानने के लिए, Firebase को अपने iOS प्रोजेक्ट में जोड़ने से जुड़ा दस्तावेज़ देखें. शुरू करने के लिए, Firebase कंसोल में इन मुख्य चरणों का पालन करें:

  1. अपने नए प्रोजेक्ट की प्रोजेक्ट की खास जानकारी वाली स्क्रीन पर, + ऐप्लिकेशन जोड़ें बटन पर क्लिक करें. इसके बाद, अपने Firebase प्रोजेक्ट में नया iOS ऐप्लिकेशन जोड़ने के लिए, iOS+ आइकॉन पर क्लिक करें.
  2. अपने ऐप्लिकेशन का बंडल आईडी डालें (उसका बंडल आईडी डालें जिसे आपने पिछले सेक्शन में बताया था, जैसे कि com.acme.samples.firebase.quickstart.DatabaseExample - ध्यान रखें कि यह एक यूनीक आइडेंटिफ़ायर होना ज़रूरी है
  3. ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.
  4. Firebase एक GoogleService-Info.plist फ़ाइल जनरेट करता है, जिसमें आपके ऐप्लिकेशन के लिए सभी ज़रूरी Firebase मेटाडेटा होते हैं.
  5. फ़ाइल डाउनलोड करने के लिए, GoogleService-Info.plist डाउनलोड करें पर क्लिक करें.
  6. Xcode में, आपको दिखेगा कि प्रोजेक्ट में पहले से ही GoogleService-Info.plist नाम की फ़ाइल मौजूद है. पहले इस फ़ाइल को मिटाएं - अगले चरण में, आपको अपने Firebase प्रोजेक्ट के लिए, इस फ़ाइल की जगह एक फ़ाइल बनानी होगी.
  7. पिछले चरण में डाउनलोड की गई GoogleService-Info.plist फ़ाइल को अपने Xcode प्रोजेक्ट के रूट फ़ोल्डर में कॉपी करें और उसे DatabaseExample (iOS) टारगेट में जोड़ें. साथ ही, पक्का करें कि इसका नाम GoogleService-Info.plist ही हो
  8. रजिस्ट्रेशन फ़्लो के बाकी चरणों पर क्लिक करें. सैंपल प्रोजेक्ट पहले ही सही तरीके से सेट अप किया गया है. इसलिए, आपको कोड में कोई बदलाव करने की ज़रूरत नहीं है.

Firebase से पुष्टि करने की सुविधा कॉन्फ़िगर करें

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

अब आपको इस ऐप्लिकेशन के लिए, Firebase से पुष्टि करने की सुविधा कॉन्फ़िगर करनी होगी.

पुष्टि करने के लिए ईमेल/पासवर्ड की सेवा देने वाली कंपनी को चालू करें

  1. Firebase कंसोल में जाकर, कंसोल का पुष्टि करने की सुविधा सेक्शन खोलें.
  2. अगर आपको अपने प्रोजेक्ट के लिए Firebase से पुष्टि करने की सुविधा सेट अप करनी है, तो शुरू करें पर क्लिक करें.
  3. साइन इन करने का तरीका टैब चुनें.
  4. मूल कंपनी सेक्शन में ईमेल/पासवर्ड चुनें.
  5. ईमेल/पासवर्ड चालू करें और सेव करें पर क्लिक करें.

टेस्ट उपयोगकर्ता जोड़ना

  1. पुष्टि करना सेक्शन का उपयोगकर्ता टैब खोलें.
  2. उपयोगकर्ता जोड़ें पर क्लिक करें.
  3. टेस्ट उपयोगकर्ता के लिए ईमेल और पासवर्ड डालें. इसके बाद, उपयोगकर्ता जोड़ें पर क्लिक करें.

ऐप्लिकेशन को आज़माएं

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

6. ऐप्लिकेशन की पुष्टि करने की सुविधा देने वाली कंपनी को कॉन्फ़िगर करें

इस चरण में, आपको Firebase कंसोल में ऐप्लिकेशन की पुष्टि करने वाली सेवा का इस्तेमाल करने के लिए, ऐप्लिकेशन की जांच करने की सुविधा कॉन्फ़िगर करनी होगी.

  1. Firebase कंसोल में, कंसोल के ऐप्लिकेशन जांच सेक्शन पर जाएं.
  2. शुरू करें पर क्लिक करें.
  3. ऐप्लिकेशन टैब में, अपने ऐप्लिकेशन की जानकारी को बड़ा करने के लिए उस पर क्लिक करें.
  4. ऐप्लिकेशन अटेस्ट को कॉन्फ़िगर करने के लिए, ऐप्लिकेशन अटेस्ट पर क्लिक करें. इसके बाद, अपने Apple डेवलपर खाते का टीम आईडी डालें (यह आपको Apple Developer पोर्टल पर सदस्यता सेक्शन में मिल सकता है): 1645f7a369b678c2.png
  5. सेव करें पर क्लिक करें.

इसके साथ, आपके पास एक चालू Firebase प्रोजेक्ट होता है, जो हमारे नए ऐप्लिकेशन से कनेक्ट होता है और ऐप्लिकेशन की जांच की सुविधा चालू हो जाती है.

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

7. अपने ऐप्लिकेशन के लिए, App Attest को कॉन्फ़िगर करें

अब समय आ गया है कि आप Firebase ऐप्लिकेशन जांच SDK टूल इस्तेमाल करें और कुछ क्लाइंट कोड लागू करें.

सबसे पहले, आपको Xcode प्रोजेक्ट को कॉन्फ़िगर करना होगा, ताकि SDK टूल, Apple के App Attest API का इस्तेमाल कर सके. इससे यह पक्का किया जा सकेगा कि आपके ऐप्लिकेशन से भेजे गए अनुरोध, आपके ऐप्लिकेशन के सही इंस्टेंस से ही भेजे गए हैं.

  1. Xcode प्रोजेक्ट में, अपने ऐप्लिकेशन टारगेट के लिए ऐप्लिकेशन की पुष्टि करने की सुविधा जोड़ें:
  2. साइन इन और आपके ऐप्लिकेशन की टारगेट सेटिंग में मौजूद क्षमताएं टैब
  3. "+" पर क्लिक करें बटन
  4. डायलॉग बॉक्स में, ऐप्लिकेशन अटेस्ट की क्षमता ae84cd988a5fab31.png ढूंढें और चुनें
  5. पिछला चरण पूरा करने के बाद, आपके Xcode प्रोजेक्ट के रूट फ़ोल्डर में DatabaseExample (iOS).entitlements फ़ाइल दिखेगी.
  6. DatabaseExample (iOS).entitlements फ़ाइल में, App Attest Environment कुंजी की वैल्यू को बदलकर production. करें

इन चरणों को पूरा करने और किसी सामान्य iOS डिवाइस (iPhone/iPad) पर ऐप्लिकेशन लॉन्च करने के बाद भी यह ऐप्लिकेशन रीयलटाइम डेटाबेस को ऐक्सेस कर पाएगा. बाद के चरण में, आपको ऐप्लिकेशन की जांच करने की सुविधा को लागू करना होगा. इससे अवैध ऐप्लिकेशन और डिवाइसों से भेजे जाने वाले अनुरोधों को ब्लॉक कर दिया जाएगा.

इस वर्कफ़्लो के बारे में ज़्यादा जानने के लिए, iOS पर ऐप्लिकेशन की पुष्टि करने की सुविधा के साथ ऐप्लिकेशन की जांच चालू करें लेख देखें.

8. iOS सिम्युलेटर के लिए, डीबग को प्रमाणित करने वाली कंपनी कॉन्फ़िगर करना

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

अपने ऐप्लिकेशन में, Firebase डीबग की सेवा देने वाली कंपनी इंस्टॉल करना

पहला विकल्प: अपनी फ़ैक्ट्री में, कुछ शर्तों के साथ डीबग की सेवा देने वाली कंपनी का इंस्टेंस बनाना

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

MyAppCheckProviderFactory.swift को इस कोड से अपडेट करें:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if targetEnvironment(simulator)
    // App Attest is not available on simulators.
    // Use a debug provider.
    let provider = AppCheckDebugProvider(app: app)

    // Print only locally generated token to avoid a valid token leak on CI.
    print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

    return provider
#else
    // Use App Attest provider on real devices.
    return AppAttestProvider(app: app)
#endif
  }
}

इससे हमें एनवायरमेंट के हिसाब से, ऐप्लिकेशन चेक को कॉन्फ़िगर करने की सुविधा मिलती है. उदाहरण के लिए, DeviceCheck जैसी पुष्टि करने वाली अन्य कंपनियों या ओएस वर्शन में, पुष्टि करने की सुविधा देने वाली किसी अन्य कंपनी का इस्तेमाल किया जा सकता है. इन ओएस वर्शन में, App Attest की सुविधा उपलब्ध नहीं है. इसका उदाहरण देखें:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
      #if targetEnvironment(simulator)
      // App Attest is not available on simulators.
      // Use a debug provider.
      let provider = AppCheckDebugProvider(app: app)

      // Print only locally generated token to avoid a valid token leak on CI.
      print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

      return provider
      #else
      if #available(iOS 14.0, *) {
        // Use App Attest provider on real devices.
        return AppAttestProvider(app: app)
      } else {
        return DeviceCheckProvider(app: app)
      }
      #endif
  }
}

दूसरा विकल्प: इंस्टॉल करें AppCheckDebugProviderFactory

आसान मामलों के लिए, Firebase ऐप्लिकेशन इंस्टेंस कॉन्फ़िगर करने से पहले, AppCheckDebugProviderFactory को कुछ समय या शर्तों के साथ इंस्टॉल किया जा सकता है:

init() {
#if targetEnvironment(simulator)
  let providerFactory = AppCheckDebugProviderFactory()
#else
  let providerFactory = MyAppCheckProviderFactory()
#endif

  AppCheck.setAppCheckProviderFactory(providerFactory)

  FirebaseApp.configure()
}

इससे, अपनी ऐप्लिकेशन जांच की सुविधा देने वाली कंपनी की फ़ैक्ट्री बनाने के लिए, कोड की कुछ लाइनें सेव की जा सकेंगी.

Firebase कंसोल में अपना डीबग सीक्रेट रजिस्टर करें

अपने iOS सिम्युलेटर से डीबग सीक्रेट पाना

  1. अगर आपने AppCheckDebugProviderFactory (ऊपर दिया गया दूसरा विकल्प) इंस्टॉल करने का विकल्प चुना है, तो आपको ऐप्लिकेशन के लॉन्च आर्ग्युमेंट में -FIRDebugEnabled जोड़कर, अपने ऐप्लिकेशन के लिए डीबग लॉग करने की सुविधा चालू करनी होगी: f1c6b477a373e144.png
  2. अपने ऐप्लिकेशन को सिम्युलेटर पर चलाएं
  3. Xcode कंसोल में डीबग सीक्रेट ढूंढें. कंसोल फ़िल्टर का इस्तेमाल करके, इसे तेज़ी से ढूंढा जा सकता है: d4c65af93e369c55.png

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

डीबग सीक्रेट रजिस्टर करना

  1. Firevbase कंसोल में वापस, ऐप्लिकेशन जांच सेक्शन पर जाएं.
  2. ऐप्लिकेशन टैब में, अपने ऐप्लिकेशन की जानकारी को बड़ा करने के लिए उस पर क्लिक करें.
  3. ओवरफ़्लो मेन्यू में, डीबग टोकन मैनेज करें को चुनें: d77c8ff768a00b4b.png
  4. Xcode कंसोल से कॉपी किया गया सीक्रेट जोड़ें. इसके बाद, सेव करें f845c97b86f694d0.png पर क्लिक करें

यह तरीका आज़माने के बाद, ऐप्लिकेशन को सिम्युलेटर पर इस्तेमाल किया जा सकता है. ऐसा तब भी किया जा सकता है, जब ऐप्लिकेशन की जांच की सुविधा चालू हो.

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

इस फ़्लो के बारे में ज़्यादा जानकारी दस्तावेज़ में मिल सकती है - iOS पर डीबग प्रोवाइडर के साथ ऐप्लिकेशन की जांच करने की सुविधा का इस्तेमाल करना देखें.

9. Firebase रीयल टाइम डेटाबेस के लिए, ऐप्लिकेशन जांच को लागू करने की सुविधा चालू करें

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

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

  1. ऐप्लिकेशन जांच सेक्शन में Firebase कंसोल में, रीयलटाइम डेटाबेस पर क्लिक करके इसकी जानकारी देखें.
  2. लागू करें पर क्लिक करें.

64e6a81fa979b635.png

  1. पुष्टि करने वाले डायलॉग में जानकारी पढ़ें और लागू करें पर क्लिक करें.

इन चरणों को पूरा करने के बाद, सिर्फ़ सही ऐप्लिकेशन डेटाबेस को ऐक्सेस कर पाएंगे. अन्य सभी ऐप्लिकेशन ब्लॉक कर दिए जाएंगे.

किसी अमान्य ऐप्लिकेशन से रीयलटाइम डेटाबेस को ऐक्सेस करने की कोशिश करना

ऐप्लिकेशन की जांच के लिए नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) देखने के लिए, यह तरीका अपनाएं:

  1. DatabaseExampleApp में अपने ऐप्लिकेशन एंट्री पॉइंट के init तरीके में, ऐप्लिकेशन की जांच के रजिस्ट्रेशन कोड पर टिप्पणी करके ऐप्लिकेशन की जांच करने की सुविधा का रजिस्ट्रेशन बंद करें.
  2. डिवाइस > सारा कॉन्टेंट और सेटिंग हमेशा के लिए मिटाएं. इससे सिम्युलेटर वाइप हो जाएगा (और डिवाइस टोकन अमान्य हो जाएगा).
  3. सिम्युलेटर पर ऐप्लिकेशन को फिर से चलाएं.
  4. अब आपको गड़बड़ी का यह मैसेज दिखेगा:
    [FirebaseDatabase][I-RDB034005] Firebase Database connection was forcefully killed by the server.  Will not attempt reconnect. Reason: Invalid appcheck token.
    

ऐप्लिकेशन की जांच की सुविधा को फिर से चालू करने के लिए, यह तरीका अपनाएं:

  1. DatabaseExampleApp में, ऐप्लिकेशन की जांच के रजिस्ट्रेशन कोड की टिप्पणी को हटाएं.
  2. ऐप्लिकेशन रीस्टार्ट करें.
  3. Xcode के कंसोल में, नए App Check टोकन को नोट करना.
  4. Firebase कंसोल में, अपने ऐप्लिकेशन की 'ऐप्लिकेशन की जांच' सेटिंग में डीबग टोकन को रजिस्टर करें.
  5. ऐप्लिकेशन को फिर से चलाएं.
  6. अब आपको गड़बड़ी का मैसेज नहीं दिखेगा. साथ ही, ऐप्लिकेशन में नई पोस्ट और टिप्पणियां जोड़ी जा सकेंगी.

10. बधाई हो!

9785d32f18b995d2.gif

अब आपको पता है कि:

  • किसी मौजूदा प्रोजेक्ट में, 'ऐप्लिकेशन जांच करने की सुविधा' जोड़ना
  • अपने ऐप्लिकेशन के प्रोडक्शन वर्शन के लिए, ऐप्लिकेशन की पुष्टि करने की सुविधा देने वाली कंपनी को कॉन्फ़िगर करें
  • सिम्युलेटर पर अपने ऐप्लिकेशन की जांच करने के लिए, डीबग करने की पुष्टि करने वाली कंपनी को कॉन्फ़िगर करें
  • अपने Firebase प्रोजेक्ट के लिए, ऐप्लिकेशन जांच की सुविधा को कब लागू करना है, यह जानने के लिए ऐप्लिकेशन वर्शन का रोल आउट देखें
  • ऐप्लिकेशन की जांच लागू करने की सुविधा चालू करें

अगले चरण

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

इन संसाधनों से आपको मदद मिल सकती है

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