FirebaseUI एक लाइब्रेरी है जो इस्तेमाल करने के लिए ड्रॉप-इन यूज़र इंटरफ़ेस (यूआई) फ़्लो उपलब्ध कराता है. आपके ऐप्लिकेशन में. 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 console में, पुष्टि करें सेक्शन खोलें और ईमेल पाने की सुविधा चालू करें और पासवर्ड की पुष्टि करता है.
ईमेल लिंक की पुष्टि करें
Firebase कंसोल में, पुष्टि करना सेक्शन खोलें. इस साइन इन करने का तरीका टैब में, ईमेल/पासवर्ड की सेवा देने वाली कंपनी को चालू करें. नोट जोड़ें ईमेल लिंक से साइन-इन करने के लिए, ईमेल या पासवर्ड से साइन-इन करने की सुविधा चालू होनी चाहिए.
इसी सेक्शन में, ईमेल लिंक (बिना पासवर्ड के साइन इन) से साइन-इन करने की सुविधा चालू करें तरीका और सेव करें पर क्लिक करें.
FUIEmailAuth
शुरू करके, ईमेल के लिंक में साइन इन करने की सुविधा चालू की जा सकती हैFIREmailLinkAuthSignInMethod
के साथ इंस्टेंस. आपको यह भी बताना होगा कि एक मान्य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 और Firebaseयूआई-वेब जहां FirebaseUI-Android से फ़्लो शुरू करने वाला उपयोगकर्ता, लिंक को खोल सकता है और FirebaseUI-web से साइन इन की प्रक्रिया पूरी करें. विपरीत स्थिति पर भी यही बात लागू होती है फ़्लो.
Apple
शुरू करने से पहले पहले और Apple पर डेटा से मैच करने से पहले यह तरीका अपनाएं ज़रूरी जानकारी वाले सेक्शन में Firebase Apple से साइन इन करें गाइड देखें.
अपनी एनटाइटलमेंट फ़ाइल में, 'Apple से साइन इन करें' सुविधा जोड़ें.
'Apple से साइन इन करें' सुविधा के लिए, कॉन्फ़िगर किए गए OAuth प्रोवाइडर के इंस्टेंस को शुरू करें:
Swift
provider = FUIOAuth.appleAuthProvider()
Objective-C
FUIOAuth *provider = [FUIOAuth appleAuthProvider];
- इस ट्यूटोरियल का इस्तेमाल करके 'Google साइन-इन' को सेट अप करना
नीचे दिए गए निर्देशों का पालन करके, Facebook लॉगिन SDK टूल सेट अप करें Facebook का शुरुआती पेज.
Firebase console में, पुष्टि करने की सुविधा सेक्शन खोलें और Facebook. Facebook में साइन इन करने के लिए, आपको अपना Facebook ऐप्लिकेशन आईडी देना होगा ऐप्लिकेशन सीक्रेट भी उपलब्ध है. इसे Facebook Developers Console पर देखा जा सकता है.
प्रोजेक्ट सेटिंग > सुविधाएं स्क्रीन.
fbFACEBOOK_APP_ID
को अपने Xcode प्रोजेक्ट चुनें.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 का लिमिटेड लॉगिन,
FUIFacebookAuth
इंस्टेंस परuseLimitedLogin
प्रॉपर्टी सेट करें.Swift
provider.useLimitedLogin = true
Objective-C
provider.useLimitedLogin = YES;
Firebase console में, पुष्टि करने की सुविधा सेक्शन खोलें और Twitter. Twitter में साइन-इन करने की सुविधा चालू करने के लिए, आपको अपना Twitter API देना होगा उपभोक्ता कुंजी और सीक्रेट, जो आपको Twitter ऐप्लिकेशन में मिल सकते हैं प्रबंधन कंसोल.
Twitter लॉगिन के लिए कॉन्फ़िगर किए गए OAuth प्रोवाइडर इंस्टेंस को शुरू करें:
Swift
provider = FUIOAuth.twitterAuthProvider()
Objective-C
FUIOAuth *provider = [FUIOAuth twitterAuthProvider];
फ़ोन नंबर
Firebase console में, पुष्टि करने की सुविधा सेक्शन खोलें और फ़ोन नंबर से साइन-इन करें.
Firebase को यह पुष्टि करनी होगी कि फ़ोन नंबर में साइन-इन करने के अनुरोध आपके ऐप्लिकेशन से मिल रहा है. ऐसा करने के लिए, एपीएन का इस्तेमाल किया जा सकता है नोटिफ़िकेशन. यहां जाएं: ऐप्लिकेशन की पुष्टि चालू करना देखें.
Firebase Authentication के साथ इस्तेमाल करने से जुड़ी एपीएन की सूचनाएं पाने की सुविधा चालू करने के लिए:
Xcode में, पुश नोटिफ़िकेशन चालू करें आपके प्रोजेक्ट के लिए.
अपनी एपीएन की पुष्टि करने वाली कुंजी को Firebase पर अपलोड करें. अगर आपके पास पहले से एपीएन की पुष्टि करने वाली कुंजी नहीं है, तो पक्का करें कि आपने Apple डेवलपर सदस्य केंद्र.
-
Firebase कंसोल में अपने प्रोजेक्ट के अंदर, गियर आइकॉन, चुनें प्रोजेक्ट सेटिंग पर क्लिक करें और फिर क्लाउड से मैसेज टैब.
-
iOS ऐप्लिकेशन कॉन्फ़िगरेशन में, APNs पुष्टि कुंजी में, अपलोड करें पर क्लिक करें बटन.
-
उस जगह ब्राउज़ करें जहां आपने सुरक्षा कुंजी सेव की है. इसके बाद, उसे चुनें और खोलें. कुंजी के लिए कुंजी आईडी जोड़ें (यहां उपलब्ध है Apple Developer member Center) और अपलोड करें.
अगर आपके पास पहले से कोई एपीएन सर्टिफ़िकेट है, तो उसे अपलोड किया जा सकता है आज़माएं.
-
जब किसी डिवाइस पर एपीएन से जुड़ी सूचनाएं नहीं मिल पाती हैं, तो Firebase इनका इस्तेमाल करता है अनुरोधों की पुष्टि करने के लिए reCAPTCHA का इस्तेमाल करें.
reCAPTCHA की मदद से पुष्टि करने के लिए, Xcode में यह तरीका अपनाएं:
- अपना प्रोजेक्ट कॉन्फ़िगरेशन खोलें: इसमें प्रोजेक्ट के नाम पर दो बार क्लिक करें बायां ट्री व्यू. टारगेट सेक्शन में जाकर अपना ऐप्लिकेशन चुनें. इसके बाद, जानकारी टैब चुनकर यूआरएल के टाइप सेक्शन को बड़ा करें.
- + बटन पर क्लिक करें और कोड में बदले गए अपने ऐप्लिकेशन आईडी को यूआरएल के तौर पर जोड़ें
स्कीम. अपना एन्कोडेड ऐप्लिकेशन आईडी यहां देखा जा सकता है:
सामान्य
Firebase कंसोल की सेटिंग पेज. यह आपके iOS के सेक्शन में
है. दूसरे फ़ील्ड खाली छोड़ दें.
पूरा होने पर, आपका कॉन्फ़िगरेशन कुछ ऐसा दिखेगा (लेकिन आपके ऐप्लिकेशन-विशिष्ट मानों के साथ):
ज़रूरी नहीं: Firebase आपकी ऐप्लिकेशन का एपीएन टोकन, जो Firebase को साइलेंट पुश नोटिफ़िकेशन को मैनेज करने के लिए होता है आपके ऐप्लिकेशन पर भेजता है. साथ ही, कस्टम स्कीम रीडायरेक्ट को अपने-आप रोकने के लिए को इस तरह से सेव किया जा सकता है.
अगर आपको स्विज़लिंग का इस्तेमाल नहीं करना है, तो अपेंडिक्स: स्विज़लिंग के बिना फ़ोन साइन इन का इस्तेमाल करना देखें की समीक्षा करें.
साइन इन करें
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];
}
आप URL को अपने ऐप्लिकेशन की सेवा की शर्तों के अनुसार कस्टमाइज़ कर सकते हैं, जो खाता बनाने वाली स्क्रीन:
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 पर मौजूद फ़ाइल में.
- अगर आपको FirebaseUI में कोई समस्या मिलती है और उसकी शिकायत करनी है, तो इसका इस्तेमाल करें: GitHub से जुड़ी समस्या को ट्रैक करने वाला टूल.