Android में ईमेल लिंक का इस्तेमाल करके Firebase से पुष्टि करना

Firebase Authentication का इस्तेमाल करके, किसी उपयोगकर्ता को ईमेल भेजकर साइन इन कराया जा सकता है. इस ईमेल में एक लिंक होता है, जिस पर क्लिक करके उपयोगकर्ता साइन इन कर सकता है. इस प्रोसेस में, उपयोगकर्ता के ईमेल पते की पुष्टि भी की जाती है.

ईमेल से साइन इन करने के कई फ़ायदे हैं:

  • आसानी से साइन अप और साइन इन किया जा सकता है.
  • अलग-अलग ऐप्लिकेशन के लिए एक ही पासवर्ड इस्तेमाल करने का जोखिम कम होता है. ऐसा करने से, अच्छी तरह से चुने गए पासवर्ड की सुरक्षा भी कमज़ोर हो सकती है.
  • उपयोगकर्ता की पुष्टि करने के साथ-साथ, यह भी पुष्टि की जा सकती है कि उपयोगकर्ता, ईमेल पते का असली मालिक है.
  • साइन इन करने के लिए, उपयोगकर्ता के पास सिर्फ़ एक ऐसा ईमेल खाता होना चाहिए जिसे ऐक्सेस किया जा सके. इसके लिए, फ़ोन नंबर या सोशल मीडिया खाते का मालिकाना हक होना ज़रूरी नहीं है.
  • उपयोगकर्ता, पासवर्ड दिए (या याद रखे) बिना सुरक्षित तरीके से साइन इन कर सकता है. मोबाइल डिवाइस पर पासवर्ड याद रखना मुश्किल हो सकता है.
  • कोई मौजूदा उपयोगकर्ता, जिसने पहले ईमेल आइडेंटिफ़ायर (पासवर्ड या फ़ेडरेटेड) से साइन इन किया था, उसे सिर्फ़ ईमेल से साइन इन करने के लिए अपग्रेड किया जा सकता है. उदाहरण के लिए, अगर कोई उपयोगकर्ता अपना पासवर्ड भूल गया है, तो वह पासवर्ड रीसेट किए बिना भी साइन इन कर सकता है.

शुरू करने से पहले

अपना Android प्रोजेक्ट सेट अप करना

  1. अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

  2. अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, Android के लिए Firebase Authentication लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करें.

    इसके अलावा, Firebase Authentication सेट अप करने के लिए, आपको अपने ऐप्लिकेशन में Google Play की सेवाओं का SDK टूल जोड़ना होगा.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.13.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.5.1")
    }

    Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase Android लाइब्रेरी के ऐसे वर्शन का इस्तेमाल करेगा जो उसके साथ काम करते हैं.

    (दूसरा तरीका)  BoM का इस्तेमाल किए बिना Firebase लाइब्रेरी की डिपेंडेंसी जोड़नाBoM

    अगर Firebase BoM का इस्तेमाल नहीं करना है, तो आपको हर Firebase लाइब्रेरी का वर्शन उसकी डिपेंडेंसी लाइन में बताना होगा.

    ध्यान दें कि अगर आपके ऐप्लिकेशन में Firebase की एक से ज़्यादा लाइब्रेरी इस्तेमाल की जाती हैं, तो हमारा सुझाव है कि लाइब्रेरी के वर्3/} मैनेज करने के लिए 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:24.1.0")
    // Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:21.5.1")
    }

अपने Firebase प्रोजेक्ट के लिए, ईमेल लिंक से साइन इन करने की सुविधा चालू करना

ईमेल लिंक की मदद से उपयोगकर्ताओं को साइन इन कराने के लिए, आपको अपने Firebase प्रोजेक्ट के लिए, ईमेल प्रोवाइडर और ईमेल लिंक से साइन इन करने का तरीका चालू करना होगा:

  1. Firebase console में, सुरक्षा > पुष्टि पर जाएं.

  2. साइन-इन करने का तरीका टैब में, ईमेल/पासवर्ड साइन-इन प्रोवाइडर को चालू करें. ध्यान दें कि ईमेल लिंक से साइन इन करने के लिए, ईमेल/पासवर्ड से साइन इन करने की सुविधा चालू होनी चाहिए.

  3. इसी सेक्शन में, ईमेल लिंक (पासवर्ड के बिना साइन इन) साइन-इन प्रोवाइडर को चालू करें.

  4. सेव करें पर क्लिक करें.

पुष्टि करने की प्रोसेस शुरू करने के लिए, उपयोगकर्ता को एक ऐसा इंटरफ़ेस दिखाएं जिसमें उससे उसका ईमेल पता मांगा जाए. इसके बाद, Firebase से उपयोगकर्ता के ईमेल पर पुष्टि करने का लिंक भेजने का अनुरोध करने के लिए, sendSignInLinkToEmail को कॉल करें.

  1. ActionCodeSettings ऑब्जेक्ट बनाएं. इससे Firebase को ईमेल लिंक बनाने के तरीके के बारे में निर्देश मिलते हैं. ये फ़ील्ड सेट करें:

    • url: एम्बेड करने के लिए डीप लिंक और पास करने के लिए कोई अतिरिक्त स्टेट. अगर आपने पहले से ही ऐसा नहीं किया है, तो अनुमति वाले डोमेन की सूची में लिंक का डोमेन जोड़ें:

      1. Firebase console में, सुरक्षा > पुष्टि > सेटिंग टैब पर जाएं.

      2. अनुमति वाले डोमेन सेक्शन में, डोमेन जोड़ें पर क्लिक करें. इसके बाद, लिंक का डोमेन जोड़ें.

      अगर उपयोगकर्ता के डिवाइस पर ऐप्लिकेशन इंस्टॉल नहीं है और उसे इंस्टॉल नहीं किया जा सका, तो लिंक उपयोगकर्ता को इस यूआरएल पर रीडायरेक्ट करेगा.

    • androidPackageName और iOSBundleId: इससे Firebase Authentication को यह तय करने में मदद मिलती है कि उसे सिर्फ़ वेब लिंक बनाना चाहिए या मोबाइल लिंक. मोबाइल लिंक, Android या Apple डिवाइस पर खुलता है.
    • handleCodeInApp: इसे 'सही' पर सेट करें. साइन-इन करने की कार्रवाई हमेशा ऐप्लिकेशन में पूरी करनी होती है. ऐसा, ईमेल से जुड़ी अन्य कार्रवाइयों (पासवर्ड रीसेट करना और ईमेल की पुष्टि करना) के उलट है. ऐसा इसलिए, क्योंकि प्रोसेस के आखिर में, उपयोगकर्ता को साइन इन किया हुआ माना जाता है और उसकी पुष्टि की स्थिति, ऐप्लिकेशन में सेव रहती है.
    • linkDomain: जब किसी प्रोजेक्ट के लिए, कस्टम Hosting लिंक डोमेन तय किए जाते हैं, तो यह तय करें कि किसी खास मोबाइल ऐप्लिकेशन से लिंक खोलने पर, किस डोमेन का इस्तेमाल करना है. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com.
    • dynamicLinkDomain: अब सेवा में नहीं है. यह पैरामीटर न डालें.

    Kotlin

    val actionCodeSettings = actionCodeSettings {
        // URL you want to redirect back to. The domain (www.example.com) for this
        // URL must be whitelisted in the Firebase Console.
        url = "https://www.example.com/finishSignUp?cartId=1234"
        // This must be true
        handleCodeInApp = true
        setIOSBundleId("com.example.ios")
        setAndroidPackageName(
            "com.example.android",
            true, // installIfNotAvailable
            "12", // minimumVersion
        )
    }

    Java

    ActionCodeSettings actionCodeSettings =
            ActionCodeSettings.newBuilder()
                    // URL you want to redirect back to. The domain (www.example.com) for this
                    // URL must be whitelisted in the Firebase Console.
                    .setUrl("https://www.example.com/finishSignUp?cartId=1234")
                    // This must be true
                    .setHandleCodeInApp(true)
                    .setIOSBundleId("com.example.ios")
                    .setAndroidPackageName(
                            "com.example.android",
                            true, /* installIfNotAvailable */
                            "12"    /* minimumVersion */)
                    .build();

    ActionCodeSettings के बारे में ज़्यादा जानने के लिए, ईमेल से जुड़ी कार्रवाइयों में स्टेट पास करना सेक्शन देखें.

  2. उपयोगकर्ता से उसका ईमेल पता मांगें.

  3. उपयोगकर्ता के ईमेल पर पुष्टि करने का लिंक भेजें. साथ ही, उपयोगकर्ता का ईमेल सेव करें, ताकि अगर वह उसी डिवाइस पर ईमेल से साइन इन करता है, तो उसे फिर से ईमेल पता न डालना पड़े.

    Kotlin

    Firebase.auth.sendSignInLinkToEmail(email, actionCodeSettings)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d(TAG, "Email sent.")
            }
        }

    Java

    FirebaseAuth auth = FirebaseAuth.getInstance();
    auth.sendSignInLinkToEmail(email, actionCodeSettings)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        Log.d(TAG, "Email sent.");
                    }
                }
            });

सुरक्षा से जुड़ी चिंताएं

साइन-इन की प्रोसेस पूरी करते समय उपयोगकर्ता का ईमेल पता देना ज़रूरी है. ऐसा इसलिए, ताकि साइन-इन लिंक का इस्तेमाल, किसी ऐसे उपयोगकर्ता या डिवाइस पर साइन इन करने के लिए न किया जा सके जिसके लिए वह लिंक नहीं भेजा गया था.Firebase Authentication साइन-इन करने के लिए, यह ज़रूरी है कि ईमेल पता, उस पते से मेल खाता हो जिस पर साइन-इन लिंक भेजा गया था.

अगर उपयोगकर्ता, लिंक का अनुरोध करने वाले डिवाइस पर ही साइन-इन लिंक खोलता है, तो इस प्रोसेस को आसान बनाया जा सकता है. इसके लिए, साइन-इन ईमेल भेजते समय, उपयोगकर्ता का ईमेल पता स्थानीय तौर पर सेव करें. उदाहरण के लिए, SharedPreferences का इस्तेमाल करके. इसके बाद, प्रोसेस पूरी करने के लिए इस पते का इस्तेमाल करें. रीडायरेक्ट यूआरएल के पैरामीटर में उपयोगकर्ता का ईमेल न डालें और न ही उसका फिर से इस्तेमाल करें, क्योंकि इससे सेशन इंजेक्शन हो सकता है.

साइन-इन करने की प्रोसेस पूरी होने के बाद, पुष्टि न किए गए साइन-इन के सभी तरीके उपयोगकर्ता के लिए उपलब्ध नहीं होंगे. साथ ही, मौजूदा सभी सेशन अमान्य हो जाएंगे. उदाहरण के लिए, अगर किसी व्यक्ति ने पहले उसी ईमेल और पासवर्ड से पुष्टि न किया गया खाता बनाया था, तो उपयोगकर्ता का पासवर्ड हटा दिया जाएगा. ऐसा इसलिए, ताकि वह व्यक्ति, पुष्टि न किए गए ईमेल और पासवर्ड से फिर से साइन इन न कर सके, जिसने मालिकाना हक का दावा किया था और पुष्टि न किया गया खाता बनाया था.

इसके अलावा, पक्का करें कि प्रोडक्शन में एचटीटीपीएस यूआरएल का इस्तेमाल किया जाए, ताकि इंटरमीडियरी सर्वर आपके लिंक को इंटरसेप्ट न कर सकें.

Android ऐप्लिकेशन में साइन-इन करना

Firebase Authentication ईमेल लिंक को मोबाइल डिवाइस पर भेजने के लिए, Firebase Hosting का इस्तेमाल करता है. मोबाइल ऐप्लिकेशन के ज़रिए साइन-इन करने के लिए, ऐप्लिकेशन को आने वाले ऐप्लिकेशन लिंक का पता लगाने, मौजूदा डीप लिंक को पार्स करने, और फिर साइन-इन करने के लिए कॉन्फ़िगर करना होगा. ज़्यादा जानने के लिए, Android ऐप्लिकेशन लिंक का दस्तावेज़ देखें.

Firebase Hosting को कॉन्फ़िगर करना

Firebase Authentication मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को बनाने और भेजने के लिए, Firebase Hosting डोमेन का इस्तेमाल करता है जब आपके लिए, डिफ़ॉल्ट Firebase Hosting डोमेन पहले से कॉन्फ़िगर किया गया है.

  1. Firebase Hosting डोमेन कॉन्फ़िगर करें:

    Firebase console में, होस्टिंग और सर्वरलेस > होस्टिंग पर जाएं.

    • अगर आपको मोबाइल ऐप्लिकेशन में खुलने वाले ईमेल लिंक के लिए डिफ़ॉल्ट डोमेन का इस्तेमाल करना है, तो अपनी डिफ़ॉल्ट साइट पर जाएं और अपने डिफ़ॉल्ट Hosting डोमेन को नोट करें. आम तौर पर, डिफ़ॉल्ट Hosting डोमेन इस तरह दिखता है: यह: PROJECT_ID.firebaseapp.com.

      आने वाले लिंक को इंटरसेप्ट करने के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करते समय आपको इस वैल्यू की ज़रूरत होगी.

    • अगर आपको ईमेल लिंक के लिए कोई कस्टम डोमेन इस्तेमाल करना है, तो आप एक रजिस्टर कर सकते हैं Firebase Hosting और लिंक के डोमेन के लिए उसका इस्तेमाल कर सकते हैं.

  2. Android ऐप्लिकेशन कॉन्फ़िगर करना:

    अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करने के लिए, Firebase console प्रोजेक्ट सेटिंग में, अपने ऐप्लिकेशन का पैकेज नाम बताना होगा. इसके अलावा, ऐप्लिकेशन सर्टिफ़िकेट का SHA-1 और SHA-256 देना होगा.

    अगर आपको इन लिंक को किसी खास गतिविधि पर रीडायरेक्ट करना है, तो आपको अपनी AndroidManifest.xml फ़ाइल में, इंटेंट फ़िल्टर कॉन्फ़िगर करना होगा. इंटेंट फ़िल्टर को आपके डोमेन के ईमेल लिंक को कैप्चर करना चाहिए. AndroidManifest.xml में:

    <intent-filter android:autoVerify="true">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.BROWSABLE" />
      <category android:name="android.intent.category.DEFAULT" />
      <data
        android:scheme="https"
        android:host="<PROJECT_ID>.firebaseapp.com or your custom domain"
        android:pathPrefix="/__/auth/links" />
    </intent-filter>
    

    जब उपयोगकर्ता, /__/auth/links पाथ और आपके तय किए गए स्कीम और होस्ट के साथ कोई होस्टिंग लिंक खोलते हैं, तो आपका ऐप्लिकेशन, लिंक को मैनेज करने के लिए इस इंटेंट फ़िल्टर के साथ गतिविधि शुरू करेगा लिंक को मैनेज करने के लिए.

ऊपर बताए गए तरीके से लिंक मिलने के बाद, पुष्टि करें कि यह ईमेल लिंक की मदद से पुष्टि करने के लिए है. इसके बाद, साइन इन करें.

Kotlin

val auth = Firebase.auth
val intent = intent
val emailLink = intent.data.toString()

// Confirm the link is a sign-in with email link.
if (auth.isSignInWithEmailLink(emailLink)) {
    // Retrieve this from wherever you stored it
    val email = "someemail@domain.com"

    // The client SDK will parse the code from the link for you.
    auth.signInWithEmailLink(email, emailLink)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d(TAG, "Successfully signed in with email link!")
                val result = task.result
                // You can access the new user via result.getUser()
                // Additional user info profile *not* available via:
                // result.getAdditionalUserInfo().getProfile() == null
                // You can check if the user is new or existing:
                // result.getAdditionalUserInfo().isNewUser()
            } else {
                Log.e(TAG, "Error signing in with email link", task.exception)
            }
        }
}

Java

FirebaseAuth auth = FirebaseAuth.getInstance();
Intent intent = getIntent();
String emailLink = intent.getData().toString();

// Confirm the link is a sign-in with email link.
if (auth.isSignInWithEmailLink(emailLink)) {
    // Retrieve this from wherever you stored it
    String email = "someemail@domain.com";

    // The client SDK will parse the code from the link for you.
    auth.signInWithEmailLink(email, emailLink)
            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        Log.d(TAG, "Successfully signed in with email link!");
                        AuthResult result = task.getResult();
                        // You can access the new user via result.getUser()
                        // Additional user info profile *not* available via:
                        // result.getAdditionalUserInfo().getProfile() == null
                        // You can check if the user is new or existing:
                        // result.getAdditionalUserInfo().isNewUser()
                    } else {
                        Log.e(TAG, "Error signing in with email link", task.getException());
                    }
                }
            });
}

Apple ऐप्लिकेशन में, ईमेल लिंक की मदद से साइन-इन करने के तरीके के बारे में ज़्यादा जानने के लिए, Apple प्लैटफ़ॉर्म की गाइड देखें.

वेब ऐप्लिकेशन में, ईमेल लिंक की मदद से साइन-इन करने के तरीके के बारे में जानने के लिए, वेब गाइड देखें.

पुष्टि करने के इस तरीके को, किसी मौजूदा उपयोगकर्ता से भी लिंक किया जा सकता है. उदाहरण के लिए, किसी उपयोगकर्ता ने पहले किसी दूसरे प्रोवाइडर, जैसे कि फ़ोन नंबर से पुष्टि की थी, तो वह अपने मौजूदा खाते में साइन-इन करने का यह तरीका जोड़ सकता है.

कार्रवाई के दूसरे हिस्से में अंतर होगा:

Kotlin

// Construct the email link credential from the current URL.
val credential = EmailAuthProvider.getCredentialWithLink(email, emailLink)

// Link the credential to the current user.
Firebase.auth.currentUser!!.linkWithCredential(credential)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            Log.d(TAG, "Successfully linked emailLink credential!")
            val result = task.result
            // You can access the new user via result.getUser()
            // Additional user info profile *not* available via:
            // result.getAdditionalUserInfo().getProfile() == null
            // You can check if the user is new or existing:
            // result.getAdditionalUserInfo().isNewUser()
        } else {
            Log.e(TAG, "Error linking emailLink credential", task.exception)
        }
    }

Java

// Construct the email link credential from the current URL.
AuthCredential credential =
        EmailAuthProvider.getCredentialWithLink(email, emailLink);

// Link the credential to the current user.
auth.getCurrentUser().linkWithCredential(credential)
        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "Successfully linked emailLink credential!");
                    AuthResult result = task.getResult();
                    // You can access the new user via result.getUser()
                    // Additional user info profile *not* available via:
                    // result.getAdditionalUserInfo().getProfile() == null
                    // You can check if the user is new or existing:
                    // result.getAdditionalUserInfo().isNewUser()
                } else {
                    Log.e(TAG, "Error linking emailLink credential", task.getException());
                }
            }
        });

इसका इस्तेमाल, संवेदनशील कार्रवाई करने से पहले, ईमेल लिंक वाले उपयोगकर्ता की फिर से पुष्टि करने के लिए भी किया जा सकता है.

Kotlin

// Construct the email link credential from the current URL.
val credential = EmailAuthProvider.getCredentialWithLink(email, emailLink)

// Re-authenticate the user with this credential.
Firebase.auth.currentUser!!.reauthenticateAndRetrieveData(credential)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            // User is now successfully reauthenticated
        } else {
            Log.e(TAG, "Error reauthenticating", task.exception)
        }
    }

Java

// Construct the email link credential from the current URL.
AuthCredential credential =
        EmailAuthProvider.getCredentialWithLink(email, emailLink);

// Re-authenticate the user with this credential.
auth.getCurrentUser().reauthenticateAndRetrieveData(credential)
        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    // User is now successfully reauthenticated
                } else {
                    Log.e(TAG, "Error reauthenticating", task.getException());
                }
            }
        });

हालांकि, ऐसा हो सकता है कि प्रोसेस किसी दूसरे डिवाइस पर खत्म हो, जहां असली उपयोगकर्ता ने लॉग इन नहीं किया था. इसलिए, यह प्रोसेस पूरी नहीं हो सकती. ऐसे में, उपयोगकर्ता को गड़बड़ी दिखाई जा सकती है, ताकि वह लिंक को उसी डिवाइस पर खोले. कार्रवाई के टाइप और उपयोगकर्ता के यूआईडी के बारे में जानकारी देने के लिए, लिंक में कुछ स्टेट पास की जा सकती है.

ईमेल लिंक की मदद से पुष्टि करने के लिए, पहले Firebase Dynamic Links का इस्तेमाल किया जाता था. यह सुविधा 25 अगस्त, 2025 को बंद कर दी जाएगी.

हमने Firebase Authentication Android SDK के v23.2.0 और इसके बाद के वर्शन और Firebase BoM v33.9.0 और इसके बाद के वर्शन में, एक दूसरा समाधान पब्लिश किया है.

अगर आपका ऐप्लिकेशन, पुराने स्टाइल के लिंक का इस्तेमाल करता है, तो आपको अपने ऐप्लिकेशन को नए Firebase Hosting आधारित सिस्टम पर माइग्रेट करना चाहिए.

अगर आपने अपना प्रोजेक्ट 15 सितंबर, 2023 को या उसके बाद बनाया है, तो ईमेल एन्यूमरेशन से सुरक्षा की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इस सुविधा से, आपके प्रोजेक्ट के उपयोगकर्ता खातों की सुरक्षा बेहतर होती है. हालांकि, इससे fetchSignInMethodsForEmail() तरीका बंद हो जाता है. पहले, हम आइडेंटिफ़ायर-फ़र्स्ट फ़्लो लागू करने के लिए, इस तरीके का इस्तेमाल करने की सलाह देते थे.

हालांकि, आपके पास अपने प्रोजेक्ट के लिए, ईमेल एन्यूमरेशन से सुरक्षा की सुविधा बंद करने का विकल्प है, लेकिन हमारा सुझाव है कि ऐसा न करें.

ज़्यादा जानकारी के लिए, ईमेल एन्यूमरेशन से सुरक्षा के बारे में दस्तावेज़ देखें.

अगले चरण

जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो एक नया उपयोगकर्ता खाता बनता है. यह खाता, उन क्रेडेंशियल से लिंक होता है जिनका इस्तेमाल करके उपयोगकर्ता ने साइन इन किया था. जैसे, उपयोगकर्ता नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने वाले प्रोवाइडर की जानकारी. यह नया खाता, आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव होता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. भले ही, उपयोगकर्ता किसी भी तरीके से साइन इन करे.

  • अपने ऐप्लिकेशन में, उपयोगकर्ता की बुनियादी प्रोफ़ाइल की जानकारी FirebaseUser ऑब्जेक्ट से पाई जा सकती है. उपयोगकर्ताओं को मैनेज करना देखें.

  • अपने Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में, आप साइन इन किए हुए उपयोगकर्ता की यूनीक यूज़र आईडी auth वैरिएबल से पा सकते हैं. इसका इस्तेमाल, यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.

पुष्टि करने वाले प्रोवाइडर के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करके, उपयोगकर्ताओं को आपके ऐप्लिकेशन में पुष्टि करने वाले एक से ज़्यादा प्रोवाइडर का इस्तेमाल करके साइन इन करने की अनुमति दी जा सकती है.

किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut को कॉल करें:

Kotlin

Firebase.auth.signOut()

Java

FirebaseAuth.getInstance().signOut();