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

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

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

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

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

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

  1. अगर आपने पहले से ऐसा नहीं किया है, तो अपने 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 services SDK टूल जोड़ना होगा.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.7.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.3.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.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.3.0")
    }
    क्या आपको Kotlin के लिए कोई लाइब्रेरी मॉड्यूल चाहिए? अक्टूबर 2023 (Firebase BoM 32.5.0) से, Kotlin और Java, दोनों डेवलपर मुख्य लाइब्रेरी मॉड्यूल का इस्तेमाल कर सकते हैं. ज़्यादा जानकारी के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले सवाल देखें.

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

  1. Firebase कंसोल में, Auth सेक्शन खोलें.
  2. साइन इन करने का तरीका टैब पर, ईमेल/पासवर्ड की सुविधा देने वाली कंपनी को चालू करें. ध्यान दें कि ईमेल लिंक से साइन इन करने की सुविधा का इस्तेमाल करने के लिए, ईमेल/पासवर्ड से साइन इन करने की सुविधा चालू होनी चाहिए.
  3. उसी सेक्शन में, साइन इन करने के लिए ईमेल लिंक (बिना पासवर्ड के साइन इन) का तरीका चालू करें.
  4. सेव करें पर क्लिक करें.

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

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

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

    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 Auth को साइन इन फ़्लो पूरा करते समय उपयोगकर्ता का ईमेल पता देना ज़रूरी है. साइन इन करने के लिए, यह ज़रूरी है कि यह ईमेल पता उस पते से मेल खाता हो जिस पर साइन इन करने का लिंक मूल रूप से भेजा गया था.

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

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

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

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

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

Firebase Auth, मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को भेजते समय, Firebase डाइनैमिक लिंक का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Firebase कंसोल में डाइनैमिक लिंक को कॉन्फ़िगर करना ज़रूरी है.

  1. Firebase डाइनैमिक लिंक की सुविधा चालू करने के लिए:

    1. Firebase कंसोल में, Dynamic Links सेक्शन खोलें.
    2. अगर आपने अब तक Dynamic Links की शर्तें स्वीकार नहीं की हैं और Dynamic Links का डोमेन नहीं बनाया है, तो अब ऐसा करें.

      अगर आपने पहले से ही कोई Dynamic Links डोमेन बनाया हुआ है, तो उसका ध्यान रखें. आम तौर पर, Dynamic Links वाला डोमेन ऐसा दिखता है:

      example.page.link

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

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

    1. अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करने के लिए, Firebase Console के प्रोजेक्ट सेटिंग में Android पैकेज का नाम डालना होगा. इसके अलावा, ऐप्लिकेशन सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
    2. डाइनैमिक लिंक डोमेन जोड़ने और यह पक्का करने के बाद कि आपका Android ऐप्लिकेशन सही तरीके से कॉन्फ़िगर किया गया है, डाइनैमिक लिंक आपके ऐप्लिकेशन पर रीडायरेक्ट करेगा. यह रीडायरेक्ट, लॉन्चर गतिविधि से शुरू होगा.
    3. अगर आपको डाइनैमिक लिंक को किसी खास गतिविधि पर रीडायरेक्ट करना है, तो आपको अपनी AndroidManifest.xml फ़ाइल में इंटेंट फ़िल्टर कॉन्फ़िगर करना होगा. ऐसा करने के लिए, इंटेंट फ़िल्टर में अपने डाइनैमिक लिंक डोमेन या ईमेल ऐक्शन हैंडलर की जानकारी दें. डिफ़ॉल्ट रूप से, ईमेल ऐक्शन हैंडलर को इस तरह के डोमेन पर होस्ट किया जाता है:
      PROJECT_ID.firebaseapp.com/
    4. ध्यान देने वाली बातें:
      1. अपने इंटेंट फ़िल्टर में, actionCodeSettings पर सेट किया गया यूआरएल न डालें.
      2. डाइनैमिक लिंक डोमेन बनाते समय, आपने शॉर्ट यूआरएल लिंक भी बनाया हो. यह छोटा यूआरएल पास नहीं किया जाएगा. इसे android:pathPrefix एट्रिब्यूट की मदद से कैप्चर करने के लिए, अपने इंटेंट फ़िल्टर को कॉन्फ़िगर न करें. इसका मतलब है कि आपके पास अपने ऐप्लिकेशन के अलग-अलग हिस्सों में, अलग-अलग डाइनैमिक लिंक को कैप्चर करने का विकल्प नहीं होगा. हालांकि, लिंक में mode क्वेरी पैरामीटर देखकर यह पता लगाया जा सकता है कि कौनसा ऑपरेशन किया जा रहा है. इसके अलावा, isSignInWithEmailLink जैसे SDK टूल के तरीकों का इस्तेमाल करके यह देखा जा सकता है कि आपके ऐप्लिकेशन को मिला लिंक, आपकी ज़रूरत के मुताबिक है या नहीं.
    5. डाइनैमिक लिंक पाने के बारे में ज़्यादा जानने के लिए, Android डाइनैमिक लिंक के निर्देश पाना लेख पढ़ें.

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

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());
                }
            }
        });

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

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

अपने प्रोजेक्ट के लिए, ईमेल की गिनती करने से जुड़ी सुरक्षा को बंद किया जा सकता है. हालांकि, हमारा सुझाव है कि ऐसा न करें.

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

अगले चरण

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

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

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

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

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

Kotlin

Firebase.auth.signOut()

Java

FirebaseAuth.getInstance().signOut();