Apple प्लेटफ़ॉर्म पर फ़ायरबेस प्रमाणीकरण के साथ आरंभ करें

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

अपने ऐप को फायरबेस से कनेक्ट करें

  1. फायरबेस एसडीके स्थापित करें
  2. फ़ायरबेस कंसोल में, अपने ऐप को अपने फ़ायरबेस प्रोजेक्ट में जोड़ें।

अपने ऐप में फायरबेस प्रमाणीकरण जोड़ें

फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।

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

(वैकल्पिक) फायरबेस लोकल एमुलेटर सूट के साथ प्रोटोटाइप और परीक्षण

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

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

प्रमाणीकरण एमुलेटर का उपयोग करने में बस कुछ ही चरण शामिल हैं:

  1. एम्यूलेटर से कनेक्ट करने के लिए अपने ऐप के परीक्षण कॉन्फ़िगरेशन में कोड की एक पंक्ति जोड़ना।
  2. आपकी स्थानीय प्रोजेक्ट निर्देशिका के मूल से, firebase emulators:start
  3. इंटरैक्टिव प्रोटोटाइपिंग के लिए स्थानीय एमुलेटर सूट यूआई, या गैर-इंटरैक्टिव परीक्षण के लिए प्रमाणीकरण एमुलेटर आरईएसटी एपीआई का उपयोग करना।

अपने ऐप को ऑथेंटिकेशन एमुलेटर से कनेक्ट करें पर एक विस्तृत गाइड उपलब्ध है। अधिक जानकारी के लिए, स्थानीय एमुलेटर सुइट परिचय देखें।

अब आइए जारी रखें कि उपयोगकर्ताओं को कैसे प्रमाणित किया जाए।

फायरबेस एसडीके को आरंभ करें

अपने ऐप प्रतिनिधि में, पहले फायरबेस एसडीके आयात करें:

तीव्र

import FirebaseCore

उद्देश्य सी

@import FirebaseCore;

फिर, application:didFinishLaunchingWithOptions: विधि, FirebaseApp ऑब्जेक्ट को प्रारंभ करें:

तीव्र

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

उद्देश्य सी

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

प्रमाणीकरण स्थिति के लिए सुनें

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

श्रोता को दृश्य नियंत्रक की viewWillAppear विधि में संलग्न करें:

तीव्र

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

उद्देश्य सी

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

और दृश्य नियंत्रक की viewWillDisappear विधि में श्रोता को अलग करें:

तीव्र

Auth.auth().removeStateDidChangeListener(handle!)

उद्देश्य सी

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

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

एक फ़ॉर्म बनाएं जो नए उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का उपयोग करके आपके ऐप के साथ पंजीकरण करने की अनुमति देता है। जब कोई उपयोगकर्ता फ़ॉर्म पूरा करता है, तो उपयोगकर्ता द्वारा प्रदान किए गए ईमेल पते और पासवर्ड को सत्यापित करें, फिर उन्हें createUser विधि पर पास करें:

तीव्र

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

उद्देश्य सी

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

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

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

तीव्र

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

उद्देश्य सी

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

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

उपयोगकर्ता द्वारा सफलतापूर्वक साइन इन करने के बाद, आप उपयोगकर्ता के बारे में जानकारी प्राप्त कर सकते हैं। उदाहरण के लिए, आपके प्रमाणीकरण स्थिति श्रोता में:

तीव्र

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 += " "
  }
  // ...
}

उद्देश्य सी

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;
  // ...
}

अगले कदम

जानें कि अन्य पहचान प्रदाताओं और अनाम अतिथि खातों के लिए समर्थन कैसे जोड़ें: