获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Apple प्लेटफ़ॉर्म पर पासवर्ड-आधारित खातों का उपयोग करके Firebase से प्रमाणित करें

आप फायरबेस प्रमाणीकरण का उपयोग अपने उपयोगकर्ताओं को उनके ईमेल पतों और पासवर्ड का उपयोग करके फायरबेस के साथ प्रमाणित करने और अपने ऐप के पासवर्ड-आधारित खातों को प्रबंधित करने के लिए कर सकते हैं।

शुरू करने से पहले

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

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

अगला, कुछ कॉन्फ़िगरेशन चरण करें:

  1. अगर आपने अभी तक अपने ऐप को अपने फायरबेस प्रोजेक्ट से कनेक्ट नहीं किया है, तो फायरबेस कंसोल से ऐसा करें।
  2. ईमेल/पासवर्ड साइन-इन सक्षम करें:
    1. Firebase कंसोल में, प्रामाणिक अनुभाग खोलें।
    2. साइन इन विधि टैब पर, ईमेल/पासवर्ड साइन-इन विधि सक्षम करें और सहेजें पर क्लिक करें।

एक पासवर्ड-आधारित खाता बनाएँ

पासवर्ड के साथ एक नया उपयोगकर्ता खाता बनाने के लिए, अपने ऐप की साइन-इन गतिविधि में निम्न चरणों को पूरा करें:

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

    स्विफ्टयूआई

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

    तीव्र

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    उद्देश्य सी

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. अपने ऐप प्रतिनिधि के application(_:didFinishLaunchingWithOptions:) विधि में FirebaseApp साझा उदाहरण कॉन्फ़िगर करें:

    स्विफ्टयूआई

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

    तीव्र

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

    उद्देश्य सी

    // 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. जब कोई नया उपयोगकर्ता आपके ऐप के साइन-अप फॉर्म का उपयोग करके साइन अप करता है, तो आपके ऐप के लिए आवश्यक कोई भी नया खाता सत्यापन चरण पूरा करें, जैसे कि यह सत्यापित करना कि नए खाते का पासवर्ड सही तरीके से टाइप किया गया था और आपकी जटिल आवश्यकताओं को पूरा करता है।
  5. नए उपयोगकर्ता का ईमेल पता और पासवर्ड createUser को पास करके एक नया खाता बनाएँ।

    तीव्र

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

    उद्देश्य सी

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    यदि नया खाता सफलतापूर्वक बनाया गया था, तो उपयोगकर्ता साइन इन है, और आप कॉलबैक विधि को पास किए गए परिणाम ऑब्जेक्ट से उपयोगकर्ता का खाता डेटा प्राप्त कर सकते हैं।

एक ईमेल पते और पासवर्ड के साथ एक उपयोगकर्ता में साइन इन करें

किसी उपयोगकर्ता को पासवर्ड के साथ साइन इन करने के चरण एक नया खाता बनाने के चरणों के समान हैं। अपने ऐप की साइन-इन गतिविधि में, निम्न कार्य करें:

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

    स्विफ्टयूआई

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

    तीव्र

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    उद्देश्य सी

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. अपने ऐप प्रतिनिधि के application(_:didFinishLaunchingWithOptions:) विधि में FirebaseApp साझा उदाहरण कॉन्फ़िगर करें:

    स्विफ्टयूआई

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

    तीव्र

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

    उद्देश्य सी

    // 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. जब कोई उपयोगकर्ता आपके ऐप में साइन इन करता है, तो साइन इन करने के लिए उपयोगकर्ता का ईमेल पता और पासवर्ड पास 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) {
      // ...
    }];
    यदि उपयोगकर्ता सफलतापूर्वक साइन इन करता है, तो आप कॉलबैक विधि को पास किए गए परिणाम ऑब्जेक्ट से उपयोगकर्ता का खाता डेटा प्राप्त कर सकते हैं।

अनुशंसित: ईमेल गणना सुरक्षा सक्षम करें

कुछ फायरबेस प्रमाणीकरण विधियाँ जो ईमेल पतों को मापदंडों के रूप में लेती हैं, विशिष्ट त्रुटियाँ फेंकती हैं यदि ईमेल पता अपंजीकृत है जब इसे पंजीकृत होना चाहिए (उदाहरण के लिए, ईमेल पते और पासवर्ड के साथ साइन इन करते समय), या पंजीकृत होने पर इसका उपयोग नहीं किया जाना चाहिए (उदाहरण के लिए, उपयोगकर्ता का ईमेल पता बदलते समय)। जबकि यह उपयोगकर्ताओं को विशिष्ट उपाय सुझाने में मददगार हो सकता है, दुर्भावनापूर्ण अभिनेताओं द्वारा आपके उपयोगकर्ताओं द्वारा पंजीकृत ईमेल पतों की खोज करने के लिए इसका दुरुपयोग भी किया जा सकता है।

इस जोखिम को कम करने के लिए, हम अनुशंसा करते हैं कि आप Google क्लाउड gcloud टूल का उपयोग करके अपने प्रोजेक्ट के लिए ईमेल गणना सुरक्षा सक्षम करें। ध्यान दें कि इस सुविधा को सक्षम करने से फायरबेस ऑथेंटिकेशन की त्रुटि रिपोर्टिंग व्यवहार बदल जाता है: सुनिश्चित करें कि आपका ऐप अधिक विशिष्ट त्रुटियों पर निर्भर नहीं करता है।

अगले कदम

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

  • अपने ऐप्लिकेशन में, आप User ऑब्जेक्ट से उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी प्राप्त कर सकते हैं। उपयोगकर्ता प्रबंधित करें देखें।

  • आपके फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप auth चर से साइन-इन किए गए उपयोगकर्ता की विशिष्ट उपयोगकर्ता आईडी प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

आप प्रमाणीकरण प्रदाता क्रेडेंशियल्स को किसी मौजूदा उपयोगकर्ता खाते से लिंक करके उपयोगकर्ताओं को एकाधिक प्रमाणीकरण प्रदाताओं का उपयोग करके अपने ऐप में साइन इन करने की अनुमति दे सकते हैं।

किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut: .

तीव्र

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

उद्देश्य सी

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

आप प्रमाणीकरण त्रुटियों की पूरी श्रृंखला के लिए त्रुटि प्रबंधन कोड भी जोड़ना चाह सकते हैं। हैंडल एरर देखें।