Firebase Authentication का इस्तेमाल करके, उपयोगकर्ताओं को एक या उससे ज़्यादा तरीकों से आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है. इनमें ईमेल पते और पासवर्ड से साइन इन करने के साथ-साथ, Google Sign-in और Facebook Login जैसे फ़ेडरेटेड आइडेंटिटी प्रोवाइडर शामिल हैं. इस ट्यूटोरियल में, Firebase Authentication का इस्तेमाल शुरू करने का तरीका बताया गया है. इसमें, अपने ऐप्लिकेशन में ईमेल पता और पासवर्ड जोड़कर साइन इन करने का तरीका बताया गया है.
अपने ऐप्लिकेशन को Firebase से कनेक्ट करें
- Firebase SDK टूल इंस्टॉल करें.
- Firebase कंसोल में, अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से जोड़ें.
अपने ऐप्लिकेशन में Firebase Authentication जोड़ना
Firebase की डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
अपने Apple प्रोजेक्ट में Firebase SDK टूल जोड़ने के अलग-अलग तरीकों के बारे में जानने के लिए,- Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलने के लिए, फ़ाइल > पैकेज जोड़ें पर जाएं.
- जब कहा जाए, तब Firebase के Apple प्लैटफ़ॉर्म के SDK टूल का रिपॉज़िटरी जोड़ें:
- Firebase Authentication लाइब्रेरी चुनें.
- अपने टारगेट की बिल्ड सेटिंग के अन्य लिंकर फ़्लैग सेक्शन में
-ObjC
फ़्लैग जोड़ें. - प्रोसेस पूरी होने के बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी को अपने-आप हल और डाउनलोड करना शुरू कर देगा.
https://github.com/firebase/firebase-ios-sdk.git
(ज़रूरी नहीं) Firebase Local Emulator Suite की मदद से प्रोटोटाइप बनाना और जांच करना
आपका ऐप्लिकेशन उपयोगकर्ताओं की पुष्टि कैसे करता है, इस बारे में बात करने से पहले, आइए उन टूल के बारे में बताएं जिनका इस्तेमाल करके, Authentication की सुविधा का प्रोटोटाइप बनाया जा सकता है और उसकी जांच की जा सकती है: Firebase Local Emulator Suite. अगर आपको पुष्टि करने की तकनीकों और सेवा देने वाली कंपनियों में से किसी एक को चुनना है, Authentication और Firebase Security Rules का इस्तेमाल करके सार्वजनिक और निजी डेटा के साथ अलग-अलग डेटा मॉडल आज़माने हैं या साइन इन यूज़र इंटरफ़ेस (यूआई) के डिज़ाइन का प्रोटोटाइप बनाने हैं, तो लाइव सेवाओं को डिप्लॉय किए बिना लोकल तौर पर काम करना एक अच्छा आइडिया हो सकता है.
Authentication एमुलेटर, Local Emulator Suite का हिस्सा होता है. इससे आपके ऐप्लिकेशन को एमुलेट किए गए डेटाबेस कॉन्टेंट और कॉन्फ़िगरेशन के साथ-साथ, एमुलेट किए गए प्रोजेक्ट के रिसॉर्स (फ़ंक्शन, अन्य डेटाबेस, और सुरक्षा नियम) के साथ इंटरैक्ट करने में मदद मिलती है.
Authentication एमुलेटर का इस्तेमाल करने के लिए, ये चरण अपनाएं:
- एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन के टेस्ट कॉन्फ़िगरेशन में कोड की एक लाइन जोड़ना.
- अपनी लोकल प्रोजेक्ट डायरेक्ट्री के रूट से,
firebase emulators:start
चलाएं. - इंटरैक्टिव प्रोटोटाइपिंग के लिए 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) {
// ...
}];
उपयोगकर्ता की जानकारी पाना
जब कोई उपयोगकर्ता साइन इन कर लेता है, तब आपको उसके बारे में जानकारी मिल सकती है. उदाहरण के लिए, पुष्टि की स्थिति लिसनर में:
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;
// ...
}
अगले चरण
अन्य आइडेंटिटी प्रोवाइडर और पहचान ज़ाहिर किए बिना मेहमान के तौर पर साइन इन करने वाले लोगों के लिए सहायता जोड़ने का तरीका जानें: