Firebase Authentication का इस्तेमाल करके, उपयोगकर्ताओं को साइन इन करने के एक या उससे ज़्यादा तरीके उपलब्ध कराए जा सकते हैं. इनमें ईमेल पते और पासवर्ड से साइन इन करने के साथ-साथ, फ़ेडरेटेड आइडेंटिटी प्रोवाइडर की मदद से साइन इन करने के तरीके भी शामिल हैं. जैसे, Google साइन-इन और Facebook लॉगिन. इस ट्यूटोरियल में, Firebase Authentication का इस्तेमाल शुरू करने का तरीका बताया गया है. इसमें आपको अपने ऐप्लिकेशन में ईमेल पते और पासवर्ड से साइन-इन करने की सुविधा जोड़ने का तरीका बताया गया है.
अपने ऐप्लिकेशन को Firebase से कनेक्ट करना
- Firebase SDK टूल इंस्टॉल करें.
- Firebase कंसोल में, अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से जोड़ें.
अपने ऐप्लिकेशन में Firebase Authentication जोड़ें
Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
- Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Packages पर जाएं.
- प्रॉम्प्ट मिलने पर, Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:
- Firebase Authentication लाइब्रेरी चुनें.
- अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में,
-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;
// ...
}
अगले चरण
अन्य आइडेंटिटी प्रोवाइडर और मेहमान खातों के लिए, सहायता पाने का तरीका जानें: