FirebaseUI Auth, Firebase Authentication SDK पर आधारित एक लाइब्रेरी है. यह आपके ऐप्लिकेशन में इस्तेमाल करने के लिए, ड्रॉप-इन यूज़र इंटरफ़ेस (यूआई) फ़्लो उपलब्ध कराती है.
साइन इन करने के लिए सुझाए गए फ़्लो में, Compose स्क्रीन का इस्तेमाल किया जाता है. अब भी गतिविधियों का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, गतिविधि पर आधारित मौजूदा ऐप्लिकेशन सेक्शन देखें.
FirebaseUI Auth से ये फ़ायदे मिलते हैं:
- कई प्रोवाइडर — ईमेल/पासवर्ड, फ़ोन, Google, Facebook, Apple, GitHub, Microsoft, Yahoo, Twitter, पहचान छिपाकर पुष्टि करने की सुविधा, और कस्टम OAuth के लिए साइन-इन फ़्लो.
- खाता मैनेजमेंट — खाता मैनेजमेंट से जुड़े टास्क को पूरा करने के लिए फ़्लो. जैसे, खाता बनाना और पासवर्ड रीसेट करना.
- खाता लिंक करना — यह आइडेंटिटी प्रोवाइडर के बीच, उपयोगकर्ता खातों को सुरक्षित तरीके से लिंक करने की सुविधा देता है.
- उपयोगकर्ता ने अपनी पहचान ज़ाहिर नहीं की है — ऐसे उपयोगकर्ताओं को सुरक्षित तरीके से अपग्रेड करने के लिए फ़्लो.
- कस्टम थीम — Material 3 यूज़र इंटरफ़ेस (यूआई) के साथ काम करती है. यह आपके ऐप्लिकेशन की थीम को इनहेरिट कर सकती है. इसके अलावा, FirebaseUI ओपन सोर्स है. इसलिए, प्रोजेक्ट को फ़ोर्क किया जा सकता है और अपनी ज़रूरतों के हिसाब से बदला जा सकता है.
- Credential Manager — क्रॉस-डिवाइस पर तेज़ी से साइन इन करने के लिए, Credential Manager के साथ अपने-आप इंटिग्रेट होने की सुविधा.
- कई चरणों में पुष्टि करने की सुविधा — ज़्यादा सुरक्षा के लिए, एसएमएस और टीओटीपी की सुविधा उपलब्ध है.
शुरू करने से पहले
- अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
- Firebase कंसोल में, साइन-इन करने के उन तरीकों को चालू करें जिन्हें आपको इस्तेमाल करना है.
- अपने ऐप्लिकेशन मॉड्यूल में FirebaseUI Auth जोड़ें:
dependencies {
// Check Maven Central for the latest version:
// https://central.sonatype.com/artifact/com.firebaseui/firebase-ui-auth/versions
implementation("com.firebaseui:firebase-ui-auth:10.0.0-beta02")
// 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")
}
साइन-इन करने के तरीके सेट अप करना
Google साइन-इन
Google साइन-इन कॉन्फ़िगरेशन, कॉन्फ़िगरेशन फ़ाइल से अपने-आप मिल जाता है.
पक्का करें कि आपने Firebase कंसोल में Google साइन-इन चालू किया हो.
Facebook Login
अगर Facebook Login का इस्तेमाल किया जा रहा है, तो strings.xml में अपना Facebook ऐप्लिकेशन आईडी जोड़ें:
<resources>
<string name="facebook_application_id" translatable="false">YOUR_FACEBOOK_APP_ID</string>
<string name="facebook_login_protocol_scheme" translatable="false">fbYOUR_FACEBOOK_APP_ID</string>
<string name="facebook_client_token" translatable="false">CHANGE-ME</string>
</resources>
सेटअप करने के निर्देशों के लिए, Facebook for Developers का दस्तावेज़ देखें.
सेवा देने वाली अन्य कंपनियां
Twitter, GitHub, Microsoft, Yahoo, और Apple के लिए, Firebase Console में कॉन्फ़िगरेशन करना ज़रूरी है. हालांकि, Android के लिए कोई अतिरिक्त सेटअप करने की ज़रूरत नहीं है. प्रोवाइडर के हिसाब से निर्देश पाने के लिए, Firebase Auth का दस्तावेज़ देखें.
authUIConfiguration में इस्तेमाल करने के लिए, सेवा देने वाली कंपनियां चुनें:
val configuration = authUIConfiguration {
context = applicationContext
providers {
provider(AuthProvider.Email())
provider(
AuthProvider.Phone(
defaultCountryCode = "US",
)
)
provider(
AuthProvider.Google(
scopes = listOf("email"),
serverClientId = null,
)
)
provider(AuthProvider.Facebook())
}
}
ईमेल लिंक से साइन-इन करना
ईमेल लिंक से साइन इन करने की सुविधा, ईमेल सेवा देने वाली कंपनी के कॉन्फ़िगरेशन में मौजूद होती है:
val configuration = authUIConfiguration {
context = applicationContext
providers {
provider(
AuthProvider.Email(
isEmailLinkSignInEnabled = true,
emailLinkActionCodeSettings = actionCodeSettings {
url = "https://example.com/auth"
handleCodeInApp = true
setAndroidPackageName(
"com.example.app",
true,
null,
)
},
)
)
}
}
डीप लिंक हैंडलिंग के पूरे फ़्लो के लिए, GitHub में README का ईमेल लिंक से साइन इन करने वाला सेक्शन देखें.
साइन इन करें
AuthUIConfiguration बनाएं. इसके बाद, FirebaseAuthScreen दिखाएं.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val authUI = FirebaseAuthUI.getInstance()
setContent {
MyAppTheme {
val configuration = authUIConfiguration {
context = applicationContext
theme = AuthUITheme.fromMaterialTheme()
providers {
provider(AuthProvider.Email())
provider(
AuthProvider.Google(
scopes = listOf("email"),
serverClientId = null,
)
)
}
}
if (authUI.isSignedIn()) {
HomeScreen()
} else {
FirebaseAuthScreen(
configuration = configuration,
authUI = authUI,
onSignInSuccess = { result ->
// User signed in successfully
},
onSignInFailure = { exception ->
// Sign in failed
},
onSignInCancelled = {
finish()
},
)
}
}
}
}
}
इससे आपको पुष्टि करने की पूरी प्रोसेस के बारे में जानकारी मिलती है. इसमें ये शामिल हैं:
- पासवर्ड से पुष्टि करने की सुविधा.
- Google साइन-इन.
- पासवर्ड फिर सेट करें.
- मटीरियल 3 स्टाइलिंग.
- क्रेडेंशियल मैनेजर की सुविधा उपलब्ध है.
- डायरेक्ट कॉलबैक के ज़रिए गड़बड़ी ठीक करना.
साइन आउट करें
FirebaseUI Auth, साइन-आउट करने और खाता मिटाने के लिए आसान तरीके उपलब्ध कराता है:
lifecycleScope.launch {
FirebaseAuthUI.getInstance().signOut(applicationContext)
}
lifecycleScope.launch {
FirebaseAuthUI.getInstance().delete(applicationContext)
}
कस्टमाइज़ेशन
FirebaseUI Auth को पसंद के मुताबिक बनाया जा सकता है. इसे इस्तेमाल करने का सबसे आसान तरीका यह है कि authUIConfiguration में जाकर सीधे तौर पर कोई थीम सेट की जाए:
val configuration = authUIConfiguration {
context = applicationContext
providers {
provider(AuthProvider.Email())
provider(AuthProvider.Google(scopes = listOf("email"), serverClientId = null))
}
theme = AuthUITheme.Adaptive
}
ये काम भी किए जा सकते हैं:
AuthUITheme.Default,AuthUITheme.DefaultDarkयाAuthUITheme.Adaptiveका इस्तेमाल करें.AuthUITheme.fromMaterialTheme()की मदद से, अपने ऐप्लिकेशन की थीम को इनहेरिट करें..copy()की मदद से, डिफ़ॉल्ट थीम को पसंद के मुताबिक बनाएं.- पूरी तरह से कस्टम
AuthUIThemeबनाएं. authUIConfigurationमें लोगो, सेवा की शर्तों का यूआरएल, और निजता नीति का यूआरएल सेट करें.
थीम और पसंद के मुताबिक बनाने की सुविधा के बारे में पूरी जानकारी के लिए, GitHub में readme के थीम और पसंद के मुताबिक बनाने की सुविधा वाला सेक्शन देखें. इसमें थीम की प्राथमिकता, प्रोवाइडर बटन की स्टाइलिंग, और कस्टम थीम शामिल हैं.
गतिविधि के आधार पर काम करने वाले मौजूदा ऐप्लिकेशन
अगर आपका ऐप्लिकेशन अब भी गतिविधियों और Activity Result API का इस्तेमाल करता है, तो AuthFlowController का इस्तेमाल करके, गतिविधि पर आधारित लॉन्च फ़्लो को जारी रखा जा सकता है:
private val authLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult(),
) { result ->
if (result.resultCode == RESULT_OK) {
val user = FirebaseAuth.getInstance().currentUser
// ...
} else {
// User cancelled or sign-in failed
}
}
val configuration = authUIConfiguration {
context = applicationContext
providers {
provider(AuthProvider.Email())
provider(
AuthProvider.Google(
scopes = listOf("email"),
serverClientId = null,
)
)
}
}
val controller = FirebaseAuthUI.getInstance().createAuthFlow(configuration)
authLauncher.launch(controller.createIntent(this))