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:34.0.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:24.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.3.0")
    }

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

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

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

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

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

    • url: एम्बेड करने के लिए डीप लिंक और साथ में पास की जाने वाली कोई भी अतिरिक्त स्थिति. लिंक के डोमेन को, Firebase कंसोल में अनुमति वाले डोमेन की सूची में शामिल करना होगा. यह सूची, साइन-इन करने का तरीका टैब (Authentication -> साइन-इन करने का तरीका) में जाकर देखी जा सकती है. अगर ऐप्लिकेशन उपयोगकर्ता के डिवाइस पर इंस्टॉल नहीं है और उसे इंस्टॉल नहीं किया जा सका, तो लिंक उपयोगकर्ता को इस यूआरएल पर रीडायरेक्ट करेगा.
    • 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 कंसोल में, होस्टिंग सेक्शन खोलें.

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

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

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

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

    अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करने के लिए, आपके ऐप्लिकेशन के पैकेज का नाम, Firebase कंसोल की प्रोजेक्ट सेटिंग में दिया जाना चाहिए. इसके अलावा, ऐप्लिकेशन के सर्टिफ़िकेट का 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 वैरिएबल से साइन इन किए हुए उपयोगकर्ता का यूनीक User-ID पाया जा सकता है. साथ ही, इसका इस्तेमाल यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.

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

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

Kotlin

Firebase.auth.signOut()

Java

FirebaseAuth.getInstance().signOut();