Apple प्लैटफ़ॉर्म पर Firebase से पुष्टि करें

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

वेब कंटेनर इंस्टॉल करने से पहले

  1. Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift पैकेज मैनेजर का इस्तेमाल करें.

    1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलने के लिए, फ़ाइल > पैकेज जोड़ें पर जाएं.
    2. जब कहा जाए, तब Firebase Apple प्लैटफ़ॉर्म SDK टूल का रिपॉज़िटरी जोड़ें:
    3.   https://github.com/firebase/firebase-ios-sdk.git
    4. Firebase से पुष्टि करने की लाइब्रेरी चुनें.
    5. अपने टारगेट की बिल्ड सेटिंग के अन्य लिंकर फ़्लैग सेक्शन में -ObjC फ़्लैग जोड़ें.
    6. यह काम पूरा होने के बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी को अपने-आप रिज़ॉल्व और डाउनलोड करना शुरू कर देगा.
  2. अगर आपने अभी तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से ऐसा करें.
  3. पहचान छिपाकर पुष्टि करने की सुविधा चालू करें:
    1. Firebase कंसोल में, पुष्टि करें सेक्शन खोलें.
    2. साइन-इन करने के तरीके पेज पर, साइन-इन करने के अनजान तरीके को चालू करें.
    3. ज़रूरी नहीं: अगर आपने अपने प्रोजेक्ट को पहचान प्लैटफ़ॉर्म की मदद से Firebase से पुष्टि करने पर अपग्रेड किया है, तो अपने-आप क्लीनअप की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, पहचान छिपाकर 30 दिनों से ज़्यादा पुराने खाते अपने-आप मिट जाएंगे. अपने-आप क्लीनअप की सुविधा चालू करने वाले प्रोजेक्ट में, पहचान छिपाकर पुष्टि करने की सुविधा को इस्तेमाल करने की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा. अपने-आप क्लीनअप करने की सुविधा देखें.

पहचान छिपाकर Firebase की मदद से पुष्टि करें

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

  1. अपने UIApplicationDelegate में FirebaseCore मॉड्यूल को इंपोर्ट करें. साथ ही, ऐसे सभी Firebase मॉड्यूल को इंपोर्ट करें जिनका इस्तेमाल आपके ऐप्लिकेशन का ऐक्सेस मैनेज करता है. उदाहरण के लिए, Cloud Firestore और पुष्टि करने की सुविधा का इस्तेमाल करने के लिए:

    स्विफ़्टयूआई

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. अपने ऐप्लिकेशन का ऐक्सेस देने वाले व्यक्ति के application(_:didFinishLaunchingWithOptions:) तरीके में, FirebaseApp शेयर किए गए इंस्टेंस को कॉन्फ़िगर करें:

    स्विफ़्टयूआई

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको ऐप्लिकेशन का ऐक्सेस देना होगा और उसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor की मदद से अपने App स्ट्रक्चर में अटैच करना होगा. आपको ऐप्लिकेशन सौंपने की सुविधा को स्वाइप करने की सुविधा भी बंद करनी होगी. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.

    स्विफ़्टयूआई

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. signInAnonymouslyWithCompletion: तरीके को कॉल करें:

    Swift

    Auth.auth().signInAnonymously { authResult, error in
      // ...
    }
    

    Objective-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  5. अगर signInAnonymouslyWithCompletion: तरीके बिना किसी गड़बड़ी के पूरा हो जाता है, तो आप पहचान छिपाने वाले उपयोगकर्ता के खाते का डेटा FIRAuthDataResult ऑब्जेक्ट से पा सकते हैं:

    Swift

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid
    

    Objective-C

    FIRUser *user = authResult.user;
    BOOL isAnonymous = user.anonymous;  // YES
    NSString *uid = user.uid;
    

पहचान छिपाने वाले खाते को स्थायी खाते में बदलना

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

  1. उपयोगकर्ता के साइन अप होने पर, पुष्टि करने की सेवा देने वाली कंपनी के लिए साइन-इन फ़्लो को पूरा करें. हालांकि, साइन इन करने के लिए, FIRAuth.signInWith के किसी एक तरीके को कॉल करना शामिल न करें. उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं.
  2. पुष्टि करने वाली नई कंपनी के लिए, FIRAuthCredential पाएं:

    Google साइन-इन
    Swift
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    Objective-C
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString
                                     accessToken:result.user.accessToken.tokenString];
    
    Facebook में लॉगिन करें
    Swift
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    Objective-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    ईमेल-पासवर्ड से साइन-इन
    Swift
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Objective-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. साइन इन करने वाले उपयोगकर्ता के linkWithCredential:completion: तरीके में, FIRAuthCredential ऑब्जेक्ट पास करें:

    Swift
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    Objective-C
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

अगर linkWithCredential:completion: को कॉल किया जाता है, तो उपयोगकर्ता का नया खाता, बिना पहचान वाले खाते के Firebase डेटा को ऐक्सेस कर सकता है.

अपने-आप क्लीनअप की सुविधा

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

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

अगर आपको यह देखना है कि इस सुविधा को चालू करने से कितने उपयोगकर्ताओं पर इसका असर पड़ेगा और आपने अपने प्रोजेक्ट को पहचान प्लैटफ़ॉर्म की मदद से Firebase से पुष्टि करने की सुविधा पर अपग्रेड कर लिया है, तो Cloud Logging में, is_anon के हिसाब से फ़िल्टर करें.

अगले चरण

अब उपयोगकर्ता Firebase की मदद से पुष्टि कर सकते हैं. इसलिए, Firebase के नियमों का इस्तेमाल करके, अपने Firebase डेटाबेस में उनके डेटा के ऐक्सेस को कंट्रोल किया जा सकता है.