FirebaseUI एक लाइब्रेरी है जो इस्तेमाल करने के लिए ड्रॉप-इन यूज़र इंटरफ़ेस (यूआई) फ़्लो उपलब्ध कराता है. आपके ऐप्लिकेशन में. FirebaseUI से ये फ़ायदे मिलते हैं:
- एक से ज़्यादा सेवा देने वाली कंपनियां - ईमेल/पासवर्ड, ईमेल लिंक, फ़ोन के लिए साइन-इन फ़्लो की पुष्टि करें, Google साइन-इन, Facebook लॉगिन, Twitter लॉगिन, और GitHub लॉगिन.
- खाते का मैनेजमेंट - खाते के मैनेजमेंट से जुड़े कामों को पूरा करने के लिए फ़्लो, जैसे कि खाता बनाना और पासवर्ड फिर से सेट करना.
- खाता लिंक करना - पहचान की पुष्टि के लिए उपयोगकर्ता खातों को सुरक्षित तरीके से लिंक करने का फ़्लो सेवा देने वाली कंपनी.
- उपयोगकर्ता की पहचान छिपाकर अपग्रेड करना - पहचान छिपाने वाले उपयोगकर्ताओं को सुरक्षित तरीके से अपग्रेड करने की सुविधा.
- पसंद के मुताबिक थीम - FirebaseUI के लुक को पसंद के मुताबिक बनाएं, ताकि वह आपके ऐप्लिकेशन से मैच करे. साथ ही, FirebaseUI ओपन सोर्स है. इसलिए, प्रोजेक्ट को फ़ोर्क किया जा सकता है और उसे पसंद के मुताबिक बनाया जा सकता है आपकी ज़रूरतों के हिसाब से.
- पासवर्ड के लिए Smart Lock - पासवर्ड के लिए Smart Lock का इस्तेमाल करें.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
अपने ऐप्लिकेशन-लेवल की
build.gradle
फ़ाइल में, FirebaseUI के लिए डिपेंडेंसी जोड़ें. अगर आपको Facebook या Twitter से साइन-इन करने की सुविधा देनी है, तो Facebook और Twitter SDK टूल:dependencies { // ... implementation 'com.firebaseui:firebase-ui-auth:7.2.0' // Required only if Facebook login support is required // Find the latest Facebook SDK releases here: https://goo.gl/Ce5L94 implementation 'com.facebook.android:facebook-android-sdk:8.x' }
FirebaseUI पुष्टि SDK टूल की ये ट्रांज़िटिव डिपेंडेंसी, Firebase SDK टूल और Google Play services का SDK टूल.
Firebase console में, पुष्टि करने की सुविधा सेक्शन खोलें और पर जाएं. साइन-इन करने के कुछ तरीकों की ज़रूरत है अतिरिक्त जानकारी, जो आम तौर पर सेवा के डेवलपर में उपलब्ध होती है कंसोल.
अगर आपने 'Google साइन इन' चालू किया है, तो:
कंसोल में पूछे जाने पर, अपडेट की गई Firebase कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें (
google-services.json
), जिसमें अब OAuth क्लाइंट की जानकारी मौजूद है Google साइन-इन के लिए ज़रूरी है.अपडेट की गई इस कॉन्फ़िगरेशन फ़ाइल को अपने Android Studio प्रोजेक्ट में ले जाएं और इसे बदलें इससे जुड़ी कॉन्फ़िगरेशन फ़ाइल अब पुरानी हो जाएगी. (Firebase को अपने Android प्रोजेक्ट में जोड़ना लेख देखें.)
अगर आपने अभी तक अपने ऐप्लिकेशन का SHA फ़िंगरप्रिंट तय नहीं किया है, तो सेटिंग पेज Firebase कंसोल का इस्तेमाल किया जा सकता है. अपने क्लाइंट की पुष्टि करना देखें देखें.
अगर Facebook या Twitter से साइन इन करने की सुविधा उपलब्ध है, तो यहां स्ट्रिंग संसाधन जोड़ें
strings.xml
, जो हर कंपनी की पहचान से जुड़ी ज़रूरी जानकारी देता हो कंपनी:<resources> <!-- Facebook application ID and custom URL scheme (app ID prefixed by 'fb'). --> <string name="facebook_application_id" translatable="false">YOUR_APP_ID</string> <string name="facebook_login_protocol_scheme" translatable="false">fbYOUR_APP_ID</string> </resources>
साइन इन करें
ऐसा ActivityResultLauncher
बनाएं जो FirebaseUI के लिए कॉलबैक को रजिस्टर करता हो
गतिविधि के नतीजे का अनुबंध:
Kotlin+KTX
// See: https://developer.android.com/training/basics/intents/result private val signInLauncher = registerForActivityResult( FirebaseAuthUIActivityResultContract(), ) { res -> this.onSignInResult(res) }
Java
// See: https://developer.android.com/training/basics/intents/result private final ActivityResultLauncher<Intent> signInLauncher = registerForActivityResult( new FirebaseAuthUIActivityResultContract(), new ActivityResultCallback<FirebaseAuthUIAuthenticationResult>() { @Override public void onActivityResult(FirebaseAuthUIAuthenticationResult result) { onSignInResult(result); } } );
FirebaseUI साइन इन फ़्लो को शुरू करने के लिए, अपने साइन-इन करने के पसंदीदा तरीके:
Kotlin+KTX
// Choose authentication providers val providers = arrayListOf( AuthUI.IdpConfig.EmailBuilder().build(), AuthUI.IdpConfig.PhoneBuilder().build(), AuthUI.IdpConfig.GoogleBuilder().build(), AuthUI.IdpConfig.FacebookBuilder().build(), AuthUI.IdpConfig.TwitterBuilder().build(), ) // Create and launch sign-in intent val signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .build() signInLauncher.launch(signInIntent)
Java
// Choose authentication providers List<AuthUI.IdpConfig> providers = Arrays.asList( new AuthUI.IdpConfig.EmailBuilder().build(), new AuthUI.IdpConfig.PhoneBuilder().build(), new AuthUI.IdpConfig.GoogleBuilder().build(), new AuthUI.IdpConfig.FacebookBuilder().build(), new AuthUI.IdpConfig.TwitterBuilder().build()); // Create and launch sign-in intent Intent signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .build(); signInLauncher.launch(signInIntent);
साइन-इन की प्रोसेस पूरी होने पर, आपको
onSignInResult
:
Kotlin+KTX
private fun onSignInResult(result: FirebaseAuthUIAuthenticationResult) { val response = result.idpResponse if (result.resultCode == RESULT_OK) { // Successfully signed in val user = FirebaseAuth.getInstance().currentUser // ... } else { // Sign in failed. If response is null the user canceled the // sign-in flow using the back button. Otherwise check // response.getError().getErrorCode() and handle the error. // ... } }
Java
private void onSignInResult(FirebaseAuthUIAuthenticationResult result) { IdpResponse response = result.getIdpResponse(); if (result.getResultCode() == RESULT_OK) { // Successfully signed in FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); // ... } else { // Sign in failed. If response is null the user canceled the // sign-in flow using the back button. Otherwise check // response.getError().getErrorCode() and handle the error. // ... } }
साइन-इन करने के तरीके सेट अप करना
ईमेल लिंक की पुष्टि करें
Firebase कंसोल में, पुष्टि करना सेक्शन खोलें. इस साइन इन करने का तरीका टैब में, ईमेल/पासवर्ड की सेवा देने वाली कंपनी को चालू करें. नोट जोड़ें ईमेल लिंक से साइन-इन करने के लिए, यह ज़रूरी है कि ईमेल/पासवर्ड से साइन-इन करने की सुविधा चालू हो.
इसी सेक्शन में, ईमेल लिंक (बिना पासवर्ड के साइन इन) से साइन-इन करने की सुविधा चालू करें तरीका और सेव करें पर क्लिक करें.
ईमेल-लिंक से साइन इन करने के लिए, आपको Firebase डाइनैमिक लिंक को भी चालू करना होगा. इस Firebase कंसोल में, नेविगेशन बार में दिलचस्पी सेक्शन में जाकर, डाइनैमिक लिंक पर क्लिक करें. क्लिक करें शुरू करना और डोमेन जोड़ना. यहां चुना गया डोमेन, ईमेल में दिखेगा उपयोगकर्ताओं को भेजे गए लिंक.
FirebaseUI में ईमेल लिंक से साइन इन करने की सुविधा चालू की जा सकती है. इसके लिए,
enableEmailLinkSignIn
EmailBuilder
इंस्टेंस. आपको इसके साथ एक मान्यActionCodeSettings
ऑब्जेक्ट भी देना होगाsetHandleCodeInApp
को 'सही' पर सेट किया गया. साथ ही, आपको जिस यूआरएल को भेजना है, उसे वाइटलिस्ट करना होगाsetUrl
, जो Firebase कंसोल में, पुष्टि करने -> में जाकर किया जा सकता है साइन इन करने के तरीके -> अनुमति वाले डोमेन.Kotlin+KTX
val actionCodeSettings = ActionCodeSettings.newBuilder() .setAndroidPackageName( // yourPackageName= "...", // installIfNotAvailable= true, // minimumVersion= null, ) .setHandleCodeInApp(true) // This must be set to true .setUrl("https://google.com") // This URL needs to be whitelisted .build() val providers = listOf( EmailBuilder() .enableEmailLinkSignIn() .setActionCodeSettings(actionCodeSettings) .build(), ) val signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .build() signInLauncher.launch(signInIntent)
Java
ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() .setAndroidPackageName( /* yourPackageName= */ "...", /* installIfNotAvailable= */ true, /* minimumVersion= */ null) .setHandleCodeInApp(true) // This must be set to true .setUrl("https://google.com") // This URL needs to be whitelisted .build(); List<AuthUI.IdpConfig> providers = Arrays.asList( new AuthUI.IdpConfig.EmailBuilder() .enableEmailLinkSignIn() .setActionCodeSettings(actionCodeSettings) .build() ); Intent signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .build(); signInLauncher.launch(signInIntent);
अगर आपको किसी खास गतिविधि में यह लिंक चाहिए, तो कृपया यहां बताया गया तरीका अपनाएं यहां पढ़ें. ऐसा न करने पर, लिंक ये काम करेगा लॉन्चर गतिविधि पर रीडायरेक्ट करना.
डीप लिंक मिलने के बाद, आपको कॉल करके इस बात की पुष्टि करनी होगी कि हम आपके लिए यह कार्रवाई कर सकते हैं. अगर हम तो आपको वह जानकारी हमें
setEmailLink
के ज़रिए देनी होगी.Kotlin+KTX
if (AuthUI.canHandleIntent(intent)) { val extras = intent.extras ?: return val link = extras.getString("email_link_sign_in") if (link != null) { val signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setEmailLink(link) .setAvailableProviders(providers) .build() signInLauncher.launch(signInIntent) } }
Java
if (AuthUI.canHandleIntent(getIntent())) { if (getIntent().getExtras() == null) { return; } String link = getIntent().getExtras().getString("email_link_sign_in"); if (link != null) { Intent signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setEmailLink(link) .setAvailableProviders(providers) .build(); signInLauncher.launch(signInIntent); } }
ज़रूरी नहीं क्रॉस-डिवाइस ईमेल पर लिंक से साइन इन करने की सुविधा काम करती है. इसका मतलब है कि लिंक के ज़रिए वेब या Apple ऐप्लिकेशन पर लॉग इन करने के लिए, आपके Android ऐप्लिकेशन का इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, क्रॉस-डिवाइस सहायता चालू है.
EmailBuilder
इंस्टेंस परsetForceSameDevice
को कॉल करके, इसे बंद किया जा सकता है.FirebaseUI-Web देखें और FirebaseUI-iOS हमारा वीडियो देखें.
साइन आउट करें
FirebaseUI, Firebase से पुष्टि करने की सुविधा से साइन आउट करने के लिए आसान तरीके उपलब्ध कराता है साथ ही, सोशल मीडिया की सेवा देने वाली सभी कंपनियों के लिए:
Kotlin+KTX
AuthUI.getInstance() .signOut(this) .addOnCompleteListener { // ... }
Java
AuthUI.getInstance() .signOut(this) .addOnCompleteListener(new OnCompleteListener<Void>() { public void onComplete(@NonNull Task<Void> task) { // ... } });
आपके पास उपयोगकर्ता के खाते को पूरी तरह से मिटाने का विकल्प भी होता है:
Kotlin+KTX
AuthUI.getInstance() .delete(this) .addOnCompleteListener { // ... }
Java
AuthUI.getInstance() .delete(this) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { // ... } });
पसंद के मुताबिक बनाएं
डिफ़ॉल्ट रूप से, FirebaseUI थीम के लिए AppCompat का इस्तेमाल करता है, जिसका मतलब है कि यह
अपने ऐप्लिकेशन की कलर स्कीम को अपनाएं. अगर आपको और कस्टमाइज़ेशन की ज़रूरत है, तो
साइन-इन करने वाले Intent
बिल्डर में, थीम और लोगो पास करने के लिए:
Kotlin+KTX
val signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .setLogo(R.drawable.my_great_logo) // Set logo drawable .setTheme(R.style.MySuperAppTheme) // Set theme .build() signInLauncher.launch(signInIntent)
Java
Intent signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .setLogo(R.drawable.my_great_logo) // Set logo drawable .setTheme(R.style.MySuperAppTheme) // Set theme .build(); signInLauncher.launch(signInIntent);
आपके पास पसंद के मुताबिक निजता नीति और सेवा की शर्तें भी सेट करने का विकल्प है:
Kotlin+KTX
val signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .setTosAndPrivacyPolicyUrls( "https://example.com/terms.html", "https://example.com/privacy.html", ) .build() signInLauncher.launch(signInIntent)
Java
Intent signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(providers) .setTosAndPrivacyPolicyUrls( "https://example.com/terms.html", "https://example.com/privacy.html") .build(); signInLauncher.launch(signInIntent);
अगले चरण
- FirebaseUI का इस्तेमाल करने और उसे पसंद के मुताबिक बनाने के बारे में ज़्यादा जानकारी के लिए, यह देखें रीडमी GitHub पर मौजूद फ़ाइल में.
- अगर आपको FirebaseUI में कोई समस्या मिलती है और उसकी शिकायत करनी है, तो GitHub से जुड़ी समस्या को ट्रैक करने वाला टूल.