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

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

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

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

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

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

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

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

    इसके अलावा, Firebase से पुष्टि करने की सुविधा सेट अप करने के दौरान, आपको Google Play services SDK टूल को आपके ऐप्लिकेशन में इस्तेमाल किया जा सकता है.

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

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

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

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

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

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

    Kotlin+KTX

    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+KTX

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

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

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

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

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

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

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

  1. Firebase डाइनैमिक लिंक चालू करें:

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

      अगर आपने पहले ही डाइनैमिक लिंक डोमेन बना लिया है, तो उस पर ध्यान दें. डाइनैमिक लिंक डोमेन आम तौर पर नीचे दिए गए उदाहरण जैसा दिखता है:

      example.page.link

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

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

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

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

Kotlin+KTX

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+KTX

// 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+KTX

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

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

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

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

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

अगले चरण

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

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

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

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

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

Kotlin+KTX

Firebase.auth.signOut()

Java

FirebaseAuth.getInstance().signOut();