Apple प्लैटफ़ॉर्म पर Firebase से पुष्टि करने की सुविधा का इस्तेमाल शुरू करना

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

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

  1. Firebase SDK टूल इंस्टॉल करें.
  2. Firebase कंसोल में, अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से जोड़ें.

अपने ऐप्लिकेशन में Firebase Authentication जोड़ना

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

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

(ज़रूरी नहीं) Firebase Local Emulator Suite की मदद से प्रोटोटाइप बनाएं और टेस्ट करें

इससे पहले कि हम यह बताएं कि आपका ऐप्लिकेशन उपयोगकर्ताओं की पुष्टि कैसे करता है, आइए हम आपको ऐसे टूल के बारे में बताते हैं जिनका इस्तेमाल करके, Authentication फ़ंक्शन का प्रोटोटाइप बनाया जा सकता है और उसे टेस्ट किया जा सकता है: Firebase Local Emulator Suite. अगर आपको पुष्टि करने के तरीकों और सेवा देने वाली कंपनियों में से किसी एक को चुनना है, Authentication और Firebase Security Rules का इस्तेमाल करके सार्वजनिक और निजी डेटा के साथ अलग-अलग डेटा मॉडल आज़माने हैं या साइन-इन यूज़र इंटरफ़ेस (यूआई) डिज़ाइन का प्रोटोटाइप बनाना है, तो लाइव सेवाओं को डिप्लॉय किए बिना स्थानीय तौर पर काम करना एक अच्छा विकल्प हो सकता है.

Authentication एम्युलेटर, Local Emulator Suite का हिस्सा है. इसकी मदद से, आपका ऐप्लिकेशन एम्युलेट किए गए डेटाबेस के कॉन्टेंट और कॉन्फ़िगरेशन के साथ-साथ, एम्युलेट किए गए प्रोजेक्ट के संसाधनों (फ़ंक्शन, अन्य डेटाबेस, और सुरक्षा के नियम) के साथ इंटरैक्ट कर सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

Authentication एम्युलेटर का इस्तेमाल करने के लिए, बस कुछ ही चरणों को पूरा करना होता है:

  1. एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन की टेस्ट कॉन्फ़िगरेशन में कोड की एक लाइन जोड़ें.
  2. अपनी लोकल प्रोजेक्ट डायरेक्ट्री के रूट से, firebase emulators:start चलाएं.
  3. इंटरैक्टिव प्रोटोटाइपिंग के लिए Local Emulator Suite यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करें या नॉन-इंटरैक्टिव टेस्टिंग के लिए Authentication एम्युलेटर REST API का इस्तेमाल करें.

ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन को Authentication एम्युलेटर से कनेक्ट करना लेख पढ़ें. ज़्यादा जानकारी के लिए, Local Emulator Suite परिचय देखें.

अब हम उपयोगकर्ताओं की पुष्टि करने के तरीके के बारे में बात करेंगे.

Firebase SDK टूल को सेटअप करना

अपने ऐप्लिकेशन डेलिगेट में, सबसे पहले Firebase SDK टूल इंपोर्ट करें:

Swift

import FirebaseCore

Objective-C

@import FirebaseCore;

इसके बाद, application:didFinishLaunchingWithOptions: तरीके में, FirebaseApp ऑब्जेक्ट को शुरू करें:

Swift

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

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

पुष्टि की स्थिति के बारे में सुनना

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

व्यू कंट्रोलर के viewWillAppear तरीके में लिसनर अटैच करें:

Swift

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

इसके बाद, व्यू कंट्रोलर के viewWillDisappear तरीके में लिसनर को अलग करें:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

नए उपयोगकर्ताओं को साइन अप करने के लिए न्योता देना

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

Swift

Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
  // ...
}

Objective-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

मौजूदा उपयोगकर्ताओं को साइन इन करना

ऐसा फ़ॉर्म बनाएं जिसकी मदद से मौजूदा उपयोगकर्ता, अपने ईमेल पते और पासवर्ड का इस्तेमाल करके साइन इन कर सकें. जब कोई उपयोगकर्ता फ़ॉर्म भर लेता है, तब signIn तरीके को कॉल करें:

Swift

Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
  guard let strongSelf = self else { return }
  // ...
}

Objective-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

उपयोगकर्ता की जानकारी पाना

जब कोई उपयोगकर्ता साइन इन कर लेता है, तब आपको उसकी जानकारी मिल सकती है. उदाहरण के लिए, authentication state listener में:

Swift

if let user = user {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

Objective-C

if (user) {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

अगले चरण

अन्य आइडेंटिटी प्रोवाइडर और पहचान ज़ाहिर किए बिना मेहमान के तौर पर इस्तेमाल किए जाने वाले खातों के लिए, सहायता जोड़ने का तरीका जानें: