FirebaseUI, Firebase से पुष्टि करने वाले SDK टूल पर बनी एक लाइब्रेरी है. यह आपके ऐप्लिकेशन में इस्तेमाल के लिए ड्रॉप-इन यूज़र इंटरफ़ेस (यूआई) फ़्लो उपलब्ध कराती है. FirebaseUI से ये फ़ायदे मिलते हैं:
- एक से ज़्यादा सेवा देने वाली कंपनियां: ईमेल/पासवर्ड, ईमेल लिंक, फ़ोन की पुष्टि, Google साइन-इन, Facebook लॉगिन, और Twitter लॉगिन के लिए साइन-इन फ़्लो.
- खाते का मैनेजमेंट: खाता मैनेज करने से जुड़े टास्क मैनेज करने के लिए फ़्लो, जैसे कि खाता बनाना और पासवर्ड फिर से सेट करना.
- पहचान छिपाकर खाते को लिंक करने की सुविधा: पहचान देने वाली सेवा की मदद से, पहचान देने वाली कंपनियों से अपने-आप लिंक करने की सुविधा मिलती है.
- पसंद के मुताबिक बनाया जा सकता है: अपने ऐप्लिकेशन से मैच करने के लिए, FirebaseUI को पसंद के मुताबिक बनाएं. साथ ही, FirebaseUI ओपन सोर्स होने की वजह से, प्रोजेक्ट को फ़ोर्क किया जा सकता है और उसे अपनी ज़रूरत के हिसाब से कस्टमाइज़ किया जा सकता है.
शुरू करने से पहले
अपनी Podfile में FirebaseUI जोड़ें:
pod 'FirebaseUI'
अगर आप चाहें, तो सिर्फ़ पुष्टि करने वाला कॉम्पोनेंट और उन कंपनियों को जोड़ा जा सकता है जिनका इस्तेमाल आपको करना है:
pod 'FirebaseUI/Auth' pod 'FirebaseUI/Google' pod 'FirebaseUI/Facebook' pod 'FirebaseUI/OAuth' # Used for Sign in with Apple, Twitter, etc pod 'FirebaseUI/Phone'
अगर आपने अभी तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल की मदद से ऐसा करें.
साइन-इन करने के तरीके सेट अप करना
उपयोगकर्ताओं को साइन इन करने के लिए Firebase का इस्तेमाल करने से पहले, आपको साइन-इन करने के उन तरीकों को चालू और कॉन्फ़िगर करना होगा जो आपके काम के हैं.
ईमेल पता और पासवर्ड
Firebase कंसोल में, पुष्टि करने वाला सेक्शन खोलें और ईमेल और पासवर्ड की पुष्टि करने की सुविधा चालू करें.
ईमेल लिंक की पुष्टि करें
Firebase कंसोल में, पुष्टि करने की सुविधा वाला सेक्शन खोलें. साइन इन करने का तरीका टैब पर, ईमेल/पासवर्ड देने वाली कंपनी को चालू करें. ध्यान दें ईमेल लिंक से साइन इन करने के लिए, ईमेल या पासवर्ड से साइन इन करने की सुविधा चालू होनी चाहिए.
उसी सेक्शन में, ईमेल लिंक (बिना पासवर्ड के साइन इन करना) से साइन-इन करने के तरीके को चालू करें और सेव करें पर क्लिक करें.
FIREmailLinkAuthSignInMethod
सेFUIEmailAuth
इंस्टेंस शुरू करके, ईमेल लिंक में साइन इन करने की सुविधा चालू की जा सकती है. आपको एक ऐसा मान्यFIRActionCodeSettings
ऑब्जेक्ट भी देना होगा जिसमेंhandleCodeInApp
को 'सही' पर सेट किया गया हो.
Swift
var actionCodeSettings = ActionCodeSettings()
actionCodeSettings.url = URL(string: "https://example.appspot.com")
actionCodeSettings.handleCodeInApp = true
actionCodeSettings.setAndroidPackageName("com.firebase.example", installIfNotAvailable: false, minimumVersion: "12")
let provider = FUIEmailAuth(authUI: FUIAuth.defaultAuthUI()!,
signInMethod: FIREmailLinkAuthSignInMethod,
forceSameDevice: false,
allowNewEmailAccounts: true,
actionCodeSetting: actionCodeSettings)
Objective-C
FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init];
actionCodeSettings.URL = [NSURL URLWithString:@"https://example.appspot.com"];
actionCodeSettings.handleCodeInApp = YES;
[actionCodeSettings setAndroidPackageName:@"com.firebase.example"
installIfNotAvailable:NO
minimumVersion:@"12"];
id<FUIAuthProvider> provider = [[FUIEmailAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
signInMethod:FIREmailLinkAuthSignInMethod
forceSameDevice:NO
allowNewEmailAccounts:YES
actionCodeSetting:actionCodeSettings];
इसके अलावा, आपको उस यूआरएल को व्हाइटलिस्ट (अनुमति वाली सूची) में डालना होगा जिसे आपने Iniatializer में भेजा है. Firebase कंसोल में जाकर ऐसा किया जा सकता है. इसके बाद, पुष्टि करने की सुविधा वाला सेक्शन खोलें. साइन इन करने का तरीका टैब पर, अनुमति वाले डोमेन में यूआरएल जोड़ें.
डीप लिंक समझने के बाद, आपको इसे यूज़र इंटरफ़ेस (यूआई) पर भेजना होगा, ताकि इसे मैनेज किया जा सके.
Swift
FUIAuth.defaultAuthUI()!.handleOpen(url, sourceApplication: sourceApplication)
Objective-C
[[FUIAuth defaultAuthUI] handleOpenURL:url sourceApplication:sourceApplication];
- FirebaseUI-iOS में ईमेल लिंक से साइन-इन करने की सुविधा, FirebaseUI-Android और FirebaseUI-web के साथ काम करती है. यहां FirebaseUI-Android से फ़्लो शुरू करने वाला एक उपयोगकर्ता, लिंक को खोलकर FirebaseUI-web से साइन-इन कर सकता है. विपरीत फ़्लो के लिए भी यही बात लागू होती है.
Apple
Firebase Apple से साइन इन करें गाइड में, शुरू करने से पहले और Apple की पहचान छिपाने वाले डेटा से जुड़ी ज़रूरी शर्तों का पालन करें सेक्शन में दिए गए निर्देशों का पालन करें.
अपनी एनटाइटलमेंट फ़ाइल में, 'Apple से साइन इन करें' सुविधा जोड़ें.
'Apple से साइन इन करें' सुविधा के लिए, कॉन्फ़िगर किए गए OAuth प्रोवाइडर के इंस्टेंस को शुरू करें:
Swift
provider = FUIOAuth.appleAuthProvider()
Objective-C
FUIOAuth *provider = [FUIOAuth appleAuthProvider];
- इस ट्यूटोरियल का इस्तेमाल करके 'Google साइन-इन' को सेट अप करना
Facebook का 'शुरुआत करने का तरीका' पेज फ़ॉलो करके, Facebook लॉगिन SDK टूल सेट अप करें.
Firebase कंसोल में, पुष्टि करने की सुविधा सेक्शन खोलें और Facebook चालू करें. Facebook में साइन इन करने के लिए, आपको अपना Facebook ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट देना होगा. इन्हें Facebook Developers Console से ऐक्सेस किया जा सकता है.
प्रोजेक्ट सेटिंग > क्षमताएं स्क्रीन पर जाकर, अपने Xcode प्रोजेक्ट में कीचेन शेयर करने की सुविधा चालू करें.
अपने Xcode प्रोजेक्ट में,
fbFACEBOOK_APP_ID
को यूआरएल स्कीम के तौर पर जोड़ें.Info.plist
फ़ाइल में अपना Facebook ऐप्लिकेशन आईडी और डिसप्ले नेम जोड़ें:की वैल्यू Facebookऐप्लिकेशनआईडी FACEBOOK_APP_ID
(उदाहरण के लिए,1234567890
)Facebookडिसप्लेनाम आपके ऐप्लिकेशन का नाम Facebook प्रोवाइडर इंस्टेंस शुरू करें:
Swift
provider = FUIFacebookAuth(authUI: FUIAuth.defaultAuthUI())
Objective-C
FUIFacebookAuth *provider = [[FUIFacebookAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]];
अगर आपको Facebook Limited लॉगिन का इस्तेमाल करना है, तो
FUIFacebookAuth
इंस्टेंस परuseLimitedLogin
प्रॉपर्टी सेट करें.Swift
provider.useLimitedLogin = true
Objective-C
provider.useLimitedLogin = YES;
Firebase कंसोल में जाकर, पुष्टि करने की सुविधा सेक्शन खोलें और Twitter को चालू करें. Twitter में साइन-इन करने की सुविधा चालू करने के लिए, आपको अपना Twitter API उपभोक्ता कुंजी और सीक्रेट देना होगा. यह आपको Twitter ऐप्लिकेशन मैनेजमेंट कंसोल में मिल सकता है.
Twitter लॉगिन के लिए कॉन्फ़िगर किए गए OAuth प्रोवाइडर इंस्टेंस को शुरू करें:
Swift
provider = FUIOAuth.twitterAuthProvider()
Objective-C
FUIOAuth *provider = [FUIOAuth twitterAuthProvider];
फ़ोन नंबर
Firebase कंसोल में जाकर, पुष्टि करने की सुविधा सेक्शन खोलें और फ़ोन नंबर से साइन-इन करने की सुविधा चालू करें.
यह ज़रूरी है कि Firebase यह पुष्टि कर सके कि आपके ऐप्लिकेशन से फ़ोन नंबर पर साइन इन करने के अनुरोध आ रहे हैं. ऐसा एपीएन की सूचनाओं की मदद से किया जा सकता है. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की पुष्टि चालू करें देखें.
Firebase से पुष्टि करने की सुविधा के साथ इस्तेमाल करने के लिए, एपीएन से जुड़ी सूचनाएं पाने की सुविधा चालू करने के लिए:
Xcode में, अपने प्रोजेक्ट के लिए पुश नोटिफ़िकेशन चालू करें.
अपनी एपीएन की पुष्टि करने वाली कुंजी को Firebase पर अपलोड करें. अगर आपके पास पहले से एपीएन की पुष्टि करने वाली कुंजी नहीं है, तो Apple Developer Member Center में जाकर एक कुंजी बनाएं.
-
Firebase कंसोल में, अपने प्रोजेक्ट में गियर आइकॉन चुनें, प्रोजेक्ट सेटिंग चुनें, और फिर क्लाउड से मैसेज टैब चुनें.
-
iOS ऐप्लिकेशन कॉन्फ़िगरेशन में, APNs पुष्टि कुंजी में अपलोड करें बटन पर क्लिक करें.
-
उस जगह ब्राउज़ करें जहां आपने अपनी कुंजी सेव की है. इसके बाद, उसे चुनें और खोलें पर क्लिक करें. कुंजी के लिए कुंजी आईडी जोड़ें ( Apple Developer के सदस्य केंद्र में उपलब्ध) और अपलोड करें पर क्लिक करें.
अगर आपके पास पहले से कोई एपीएन सर्टिफ़िकेट है, तो उसे अपलोड करें.
-
जब किसी डिवाइस पर एपीएन की सूचनाएं नहीं मिल पाती हैं, तो Firebase, अनुरोधों की पुष्टि करने के लिए reCAPTCHA का इस्तेमाल करता है.
reCAPTCHA की मदद से पुष्टि करने के लिए, Xcode में यह तरीका अपनाएं:
- अपना प्रोजेक्ट कॉन्फ़िगरेशन खोलें: बाएं ट्री व्यू में प्रोजेक्ट के नाम पर दो बार क्लिक करें. टारगेट सेक्शन से अपना ऐप्लिकेशन चुनें. इसके बाद, जानकारी टैब चुनें और यूआरएल टाइप सेक्शन को बड़ा करें.
- + बटन पर क्लिक करें और अपने कोड में बदले गए ऐप्लिकेशन आईडी को यूआरएल स्कीम के तौर पर जोड़ें. अपने iOS ऐप्लिकेशन के सेक्शन में, Firebase कंसोल के
सामान्य
सेटिंग पेज पर, कोड में बदला गया अपना ऐप्लिकेशन आईडी
देखा जा सकता है. दूसरे फ़ील्ड खाली छोड़ दें.
पूरा होने के बाद, आपका कॉन्फ़िगरेशन कुछ ऐसा दिखना चाहिए (लेकिन आपके ऐप्लिकेशन के खास मानों के साथ):
ज़रूरी नहीं: Firebase आपके ऐप्लिकेशन का एपीएन टोकन अपने-आप पाने के लिए, स्वाइप करने के तरीके का इस्तेमाल करता है. इससे Firebase आपके ऐप्लिकेशन पर भेजे जाने वाले साइलेंट पुश नोटिफ़िकेशन को मैनेज करता है. साथ ही, पुष्टि के दौरान reCAPTCHA की पुष्टि करने वाले पेज से कस्टम स्कीम रीडायरेक्ट को अपने-आप इंटरसेप्ट करता है.
अगर आपको स्विज़लिंग का इस्तेमाल नहीं करना है, तो Firebase SDK टूल की पुष्टि करने वाले दस्तावेज़ों में, अपेंडिक्स: स्विज़लिंग के बिना फ़ोन साइन-इन का इस्तेमाल करना सेक्शन देखें.
साइन इन करें
FirebaseUI साइन इन फ़्लो को शुरू करने के लिए, पहले FirebaseUI शुरू करें:
Swift
import FirebaseAuthUI
/* ... */
FirebaseApp.configure()
let authUI = FUIAuth.defaultAuthUI()
// You need to adopt a FUIAuthDelegate protocol to receive callback
authUI.delegate = self
Objective-C
@import FirebaseAuthUI;
...
[FIRApp configure];
FUIAuth *authUI = [FUIAuth defaultAuthUI];
// You need to adopt a FUIAuthDelegate protocol to receive callback
authUI.delegate = self;
इसके बाद, साइन-इन करने के उन तरीकों का इस्तेमाल करने के लिए FirebaseUI को कॉन्फ़िगर करें जिनके साथ आपको काम करना है:
Swift
import FirebaseAuthUI
import FirebaseFacebookAuthUI
import FirebaseGoogleAuthUI
import FirebaseOAuthUI
import FirebasePhoneAuthUI
let providers: [FUIAuthProvider] = [
FUIGoogleAuth(),
FUIFacebookAuth(),
FUITwitterAuth(),
FUIPhoneAuth(authUI:FUIAuth.defaultAuthUI()),
]
self.authUI.providers = providers
Objective-C
@import FirebaseAuthUI;
@import FirebaseFacebookAuthUI;
@import FirebaseGoogleAuthUI;
@import FirebaseOAuthUI;
@import FirebasePhoneAuthUI;
...
NSArray<id<FUIAuthProvider>> *providers = @[
[[FUIGoogleAuth alloc] init],
[[FUIFacebookAuth alloc] init],
[[FUITwitterAuth alloc] init],
[[FUIPhoneAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]]
];
_authUI.providers = providers;
अगर आपने Google या Facebook में साइन इन करने की सुविधा को चालू किया है, तो Google और Facebook की साइन-अप प्रोसेस के नतीजे के लिए हैंडलर को लागू करें:
Swift
func application(_ app: UIApplication, open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String?
if FUIAuth.defaultAuthUI()?.handleOpen(url, sourceApplication: sourceApplication) ?? false {
return true
}
// other URL handling goes here.
return false
}
Objective-C
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
return [[FUIAuth defaultAuthUI] handleOpenURL:url sourceApplication:sourceApplication];
}
आखिर में, FUIAuth
से AuthViewController
का एक इंस्टेंस पाएं. इसके बाद, उसे या तो अपने ऐप्लिकेशन के पहले व्यू कंट्रोलर के तौर पर प्रज़ेंट किया जा सकता है या उसे अपने ऐप्लिकेशन में किसी दूसरे व्यू कंट्रोलर से पेश किया जा सकता है.
Swift
साइन इन करने का तरीका चुनने वाला टूल पाने के लिए:
let authViewController = authUI.authViewController()
अगर सिर्फ़ फ़ोन नंबर साइन-इन का इस्तेमाल किया जाता है, तो फ़ोन नंबर साइन-इन व्यू दिखाया जा सकता है:
let phoneProvider = FUIAuth.defaultAuthUI().providers.first as! FUIPhoneAuth
phoneProvider.signIn(withPresenting: currentlyVisibleController, phoneNumber: nil)
Objective-C
साइन इन करने का तरीका चुनने वाला टूल पाने के लिए:
UINavigationController *authViewController = [authUI authViewController];
अगर सिर्फ़ फ़ोन नंबर साइन-इन का इस्तेमाल किया जाता है, तो फ़ोन नंबर साइन-इन व्यू दिखाया जा सकता है:
FUIPhoneAuth *phoneProvider = [FUIAuth defaultAuthUI].providers.firstObject;
[phoneProvider signInWithPresentingViewController:currentlyVisibleController phoneNumber:nil];
जब आप पुष्टि करने वाला व्यू प्रज़ेंट करते हैं और उपयोगकर्ता साइन इन कर लेता है, तब didSignInWithUser:error:
तरीके में FirebaseUI ऑथराइज़ेशन डेलिगेट को नतीजे के तौर पर दिखाया जाता है:
Swift
func authUI(_ authUI: FUIAuth, didSignInWith user: FIRUser?, error: Error?) {
// handle user and error as necessary
}
Objective-C
- (void)authUI:(FUIAuth *)authUI
didSignInWithUser:(nullable FIRUser *)user
error:(nullable NSError *)error {
// Implement this method to handle signed in user or error if any.
}
साइन आउट करें
FirebaseUI, Firebase से पुष्टि करने की सुविधा और सभी सोशल आइडेंटिटी प्रोवाइडर से साइन आउट करने के लिए आसान तरीके उपलब्ध कराता है:
Swift
authUI.signOut()
Objective-C
[authUI signOut];
पसंद के मुताबिक बनाएं
FirebaseUI के व्यू कंट्रोलर को सब-क्लास करके और उन्हें FUIAuth
के डेलिगेट तरीकों में बताकर, साइन-इन स्क्रीन को पसंद के मुताबिक बनाया जा सकता है:
Swift
func authPickerViewController(forAuthUI authUI: FUIAuth) -> FUIAuthPickerViewController {
return FUICustomAuthPickerViewController(nibName: "FUICustomAuthPickerViewController",
bundle: Bundle.main,
authUI: authUI)
}
func emailEntryViewController(forAuthUI authUI: FUIAuth) -> FUIEmailEntryViewController {
return FUICustomEmailEntryViewController(nibName: "FUICustomEmailEntryViewController",
bundle: Bundle.main,
authUI: authUI)
}
func passwordRecoveryViewController(forAuthUI authUI: FUIAuth, email: String) -> FUIPasswordRecoveryViewController {
return FUICustomPasswordRecoveryViewController(nibName: "FUICustomPasswordRecoveryViewController",
bundle: Bundle.main,
authUI: authUI,
email: email)
}
func passwordSignInViewController(forAuthUI authUI: FUIAuth, email: String) -> FUIPasswordSignInViewController {
return FUICustomPasswordSignInViewController(nibName: "FUICustomPasswordSignInViewController",
bundle: Bundle.main,
authUI: authUI,
email: email)
}
func passwordSignUpViewController(forAuthUI authUI: FUIAuth, email: String) -> FUIPasswordSignUpViewController {
return FUICustomPasswordSignUpViewController(nibName: "FUICustomPasswordSignUpViewController",
bundle: Bundle.main,
authUI: authUI,
email: email)
}
func passwordVerificationViewController(forAuthUI authUI: FUIAuth, email: String, newCredential: AuthCredential) -> FUIPasswordVerificationViewController {
return FUICustomPasswordVerificationViewController(nibName: "FUICustomPasswordVerificationViewController",
bundle: Bundle.main,
authUI: authUI,
email: email,
newCredential: newCredential)
}
Objective-C
- (FUIAuthPickerViewController *)authPickerViewControllerForAuthUI:(FUIAuth *)authUI {
return [[FUICustomAuthPickerViewController alloc] initWithNibName:@"FUICustomAuthPickerViewController"
bundle:[NSBundle mainBundle]
authUI:authUI];
}
- (FUIEmailEntryViewController *)emailEntryViewControllerForAuthUI:(FUIAuth *)authUI {
return [[FUICustomEmailEntryViewController alloc] initWithNibName:@"FUICustomEmailEntryViewController"
bundle:[NSBundle mainBundle]
authUI:authUI];
}
- (FUIPasswordSignInViewController *)passwordSignInViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email {
return [[FUICustomPasswordSignInViewController alloc] initWithNibName:@"FUICustomPasswordSignInViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email];
}
- (FUIPasswordSignUpViewController *)passwordSignUpViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email {
return [[FUICustomPasswordSignUpViewController alloc] initWithNibName:@"FUICustomPasswordSignUpViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email];
}
- (FUIPasswordRecoveryViewController *)passwordRecoveryViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email {
return [[FUICustomPasswordRecoveryViewController alloc] initWithNibName:@"FUICustomPasswordRecoveryViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email];
}
- (FUIPasswordVerificationViewController *)passwordVerificationViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email
newCredential:(FIRAuthCredential *)newCredential {
return [[FUICustomPasswordVerificationViewController alloc] initWithNibName:@"FUICustomPasswordVerificationViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email
newCredential:newCredential];
}
यूआरएल को अपने ऐप्लिकेशन की सेवा की शर्तों के मुताबिक बनाया जा सकता है. ये शर्तें, खाता बनाने वाली स्क्रीन पर दी गई हैं:
Swift
let kFirebaseTermsOfService = URL(string: "https://example.com/terms")!
authUI.tosurl = kFirebaseTermsOfService
Objective-C
authUI.TOSURL = [NSURL URLWithString:@"https://example.com/terms"];
आखिर में, एक कस्टम बंडल तय करके अपने उपयोगकर्ताओं को दिखाए जाने वाले मैसेज और प्रॉम्प्ट को अपनी पसंद के मुताबिक बनाया जा सकता है:
Swift
authUI.customStringsBundle = NSBundle.mainBundle() // Or any custom bundle.
Objective-C
authUI.customStringsBundle = [NSBundle mainBundle]; // Or any custom bundle.
अगले चरण
- FirebaseUI का इस्तेमाल करने और उसे पसंद के मुताबिक बनाने के बारे में ज़्यादा जानकारी के लिए, GitHub पर README फ़ाइल देखें.
- अगर आपको FirebaseUI में कोई गड़बड़ी मिलती है और आपको उसकी शिकायत करनी है, तो GitHub से जुड़ी समस्या को ट्रैक करने वाले टूल का इस्तेमाल करें.