आपके पास अपने उपयोगकर्ताओं को उनके Google खाते का इस्तेमाल करके, Firebase की मदद से पुष्टि करने की सुविधा देने का विकल्प है.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
आपके मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल में (आम तौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
), Android के लिए Firebase Authentication लाइब्रेरी के लिए डिपेंडेंसी जोड़ें. हमारा सुझाव है कि Firebase Android BoM लाइब्रेरी के वर्शन को कंट्रोल करने के लिए.साथ ही, Firebase Authentication को सेट अप करने के दौरान, आपको यह जोड़ना होगा Google Play services SDK टूल को आपके ऐप्लिकेशन में इस्तेमाल किया जा सकता है.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth")
// Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:21.2.0") }Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase Android लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.
(वैकल्पिक) BoM का इस्तेमाल करके, बिना Firebase लाइब्रेरी डिपेंडेंसी जोड़ें
अगर आपको Firebase BoM का इस्तेमाल नहीं करना है, तो आपको Firebase लाइब्रेरी का हर वर्शन बताना होगा इसकी डिपेंडेंसी लाइन में.
ध्यान दें कि अगर आप अपने ऐप्लिकेशन में कई Firebase लाइब्रेरी का इस्तेमाल करते हैं, तो हम लाइब्रेरी वर्शन को मैनेज करने के लिए, BoM का इस्तेमाल करने की सलाह दी जाती है. इससे यह पक्का होता है कि सभी वर्शन साथ काम करता है.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:23.0.0")
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
// Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:21.2.0") }अगर आपने अभी तक अपने ऐप्लिकेशन का SHA फ़िंगरप्रिंट तय नहीं किया है, तो सेटिंग पेज Firebase कंसोल का इस्तेमाल किया जा सकता है. इससे संदर्भ लें अपने क्लाइंट की पुष्टि करना देखें.
- Firebase कंसोल में, साइन इन करने के तरीके के तौर पर Google को अनुमति दें:
- Firebase कंसोल में, खोलें पुष्टि सेक्शन में जाएं.
- साइन इन करने का तरीका टैब पर, Google में साइन इन करने का तरीका चालू करें और सेव करें पर क्लिक करें.
कंसोल में पूछे जाने पर, अपडेट की गई Firebase कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें (
google-services.json
), जिसमें अब OAuth क्लाइंट की जानकारी मौजूद है Google साइन-इन के लिए ज़रूरी है.अपडेट की गई इस कॉन्फ़िगरेशन फ़ाइल को अपने Android Studio प्रोजेक्ट में ले जाएं और इसे बदलें इससे जुड़ी कॉन्फ़िगरेशन फ़ाइल अब पुरानी हो जाएगी. (Firebase को अपने Android प्रोजेक्ट में जोड़ना लेख देखें.)
Firebase की मदद से पुष्टि करें
- Google One Tap की मदद से साइन-इन करने के लिए, अपने ऐप्लिकेशन को इंटिग्रेट करें. ऐसा करने के लिए,
उपयोगकर्ताओं को उनके सेव किए गए क्रेडेंशियल से साइन इन करने की सुविधा देने वाला पेज.
BeginSignInRequest
ऑब्जेक्ट को कॉन्फ़िगर करने पर, कॉल करेंsetGoogleIdTokenRequestOptions
:Kotlin+KTX
signInRequest = BeginSignInRequest.builder() .setGoogleIdTokenRequestOptions( BeginSignInRequest.GoogleIdTokenRequestOptions.builder() .setSupported(true) // Your server's client ID, not your Android client ID. .setServerClientId(getString(R.string.your_web_client_id)) // Only show accounts previously used to sign in. .setFilterByAuthorizedAccounts(true) .build()) .build()
Java
signInRequest = BeginSignInRequest.builder() .setGoogleIdTokenRequestOptions(GoogleIdTokenRequestOptions.builder() .setSupported(true) // Your server's client ID, not your Android client ID. .setServerClientId(getString(R.string.default_web_client_id)) // Only show accounts previously used to sign in. .setFilterByAuthorizedAccounts(true) .build()) .build();
setGoogleIdTokenRequestOptions
तरीके से लिंक किया गया है. ढूंढने के लिए OAuth 2.0 क्लाइंट आईडी:- Google Cloud Console में क्रेडेंशियल पेज खोलें.
- आपका बैकएंड, वेब ऐप्लिकेशन टाइप का क्लाइंट आईडी है सर्वर का OAuth 2.0 क्लाइंट आईडी.
Kotlin+KTX
class YourActivity : AppCompatActivity() { // ... private val REQ_ONE_TAP = 2 // Can be any integer unique to the Activity private var showOneTapUI = true // ... override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { REQ_ONE_TAP -> { try { val credential = oneTapClient.getSignInCredentialFromIntent(data) val idToken = credential.googleIdToken when { idToken != null -> { // Got an ID token from Google. Use it to authenticate // with Firebase. Log.d(TAG, "Got ID token.") } else -> { // Shouldn't happen. Log.d(TAG, "No ID token!") } } } catch (e: ApiException) { // ... } } } // ... }
Java
public class YourActivity extends AppCompatActivity { // ... private static final int REQ_ONE_TAP = 2; // Can be any integer unique to the Activity. private boolean showOneTapUI = true; // ... @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQ_ONE_TAP: try { SignInCredential credential = oneTapClient.getSignInCredentialFromIntent(data); String idToken = credential.getGoogleIdToken(); if (idToken != null) { // Got an ID token from Google. Use it to authenticate // with Firebase. Log.d(TAG, "Got ID token."); } } catch (ApiException e) { // ... } break; } } }
- अपनी साइन इन गतिविधि के
onCreate
तरीके में, शेयर की गई जानकारी पाएंFirebaseAuth
ऑब्जेक्ट का इंस्टेंस:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- अपनी गतिविधि शुरू करते समय, यह देखें कि उपयोगकर्ता ने अभी साइन इन किया हुआ है या नहीं:
Kotlin+KTX
override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser updateUI(currentUser) }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); updateUI(currentUser); }
- अपने
onActivityResult()
हैंडलर में (पहला चरण देखें) में, उपयोगकर्ता के Google आईडी टोकन, इसे Firebase के लिए बदलें क्रेडेंशियल डालें और Firebase क्रेडेंशियल का इस्तेमाल करके Firebase से पुष्टि करें:Kotlin+KTX
val googleCredential = oneTapClient.getSignInCredentialFromIntent(data) val idToken = googleCredential.googleIdToken when { idToken != null -> { // Got an ID token from Google. Use it to authenticate // with Firebase. val firebaseCredential = GoogleAuthProvider.getCredential(idToken, null) auth.signInWithCredential(firebaseCredential) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithCredential:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithCredential:failure", task.exception) updateUI(null) } } } else -> { // Shouldn't happen. Log.d(TAG, "No ID token!") } }
Java
SignInCredential googleCredential = oneTapClient.getSignInCredentialFromIntent(data); String idToken = googleCredential.getGoogleIdToken(); if (idToken != null) { // Got an ID token from Google. Use it to authenticate // with Firebase. AuthCredential firebaseCredential = GoogleAuthProvider.getCredential(idToken, null); mAuth.signInWithCredential(firebaseCredential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithCredential:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithCredential:failure", task.getException()); updateUI(null); } } }); }
signInWithCredential
पर कॉल पूरा हो जाता है, तो उपयोगकर्ता के खाते का डेटा पाने के लिए,getCurrentUser
तरीके का इस्तेमाल किया जा सकता है.
अगले चरण
किसी उपयोगकर्ता के पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बना दिया जाता है और आपके खाते के क्रेडेंशियल मौजूद हैं, जैसे कि उपयोगकर्ता नाम और पासवर्ड, या पुष्टि करने वाली कंपनी की जानकारी—उपयोगकर्ता ने जिससे साइन इन किया है. यह नया खाते को आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. साथ ही, इसका इस्तेमाल आपके प्रोजेक्ट के हर ऐप्लिकेशन में हर उपयोगकर्ता के लिए उपलब्ध होता है. भले ही, उपयोगकर्ता किसी भी तरह से साइन इन करता हो.
-
अपने ऐप्लिकेशन में, उपयोगकर्ता की बुनियादी प्रोफ़ाइल जानकारी को
FirebaseUser
ऑब्जेक्ट. देखें उपयोगकर्ताओं को मैनेज करना. आपके Firebase Realtime Database और Cloud Storage में सुरक्षा के नियम, ये काम किए जा सकते हैं
auth
वैरिएबल से साइन-इन किए हुए उपयोगकर्ता का यूनीक यूज़र आईडी पाएं, और इसका इस्तेमाल करके यह कंट्रोल किया जा सकता है कि उपयोगकर्ता कौनसा डेटा ऐक्सेस कर सकता है.
उपयोगकर्ताओं को, पुष्टि करने के एक से ज़्यादा तरीके का इस्तेमाल करके, अपने ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है पुष्टि करने वाले के क्रेडेंशियल जोड़कर मौजूदा उपयोगकर्ता खाते से लिंक किया जा सकता है.
उपयोगकर्ता को साइन आउट करने के लिए पर कॉल करें
signOut
:
Kotlin+KTX
Firebase.auth.signOut()
Java
FirebaseAuth.getInstance().signOut();