एंड्रॉइड में ईमेल लिंक का उपयोग करके फायरबेस से प्रमाणित करें

आप किसी उपयोगकर्ता को एक लिंक युक्त ईमेल भेजकर साइन इन करने के लिए फायरबेस प्रमाणीकरण का उपयोग कर सकते हैं, जिस पर वे साइन इन करने के लिए क्लिक कर सकते हैं। इस प्रक्रिया में, उपयोगकर्ता का ईमेल पता भी सत्यापित किया जाता है।

ईमेल द्वारा साइन इन करने के कई लाभ हैं:

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

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

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

  1. यदि आपने पहले से नहीं किया है, तो अपने एंड्रॉइड प्रोजेक्ट में फायरबेस जोड़ें

  2. अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle ), फायरबेस प्रमाणीकरण के लिए निर्भरता जोड़ें Android के लिए लाइब्रेरी. हम लाइब्रेरी वर्जनिंग को नियंत्रित करने के लिए फायरबेस एंड्रॉइड BoM का उपयोग करने की सलाह देते हैं।

    साथ ही, फायरबेस प्रमाणीकरण स्थापित करने के भाग के रूप में, आपको अपने ऐप में Google Play सेवाएं SDK जोड़ना होगा।

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

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) BoM का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरताएँ जोड़ें

    यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता पंक्ति में निर्दिष्ट करना होगा।

    ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए 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:22.3.1")
    // Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:21.0.0")
    }
    कोटलिन-विशिष्ट लाइब्रेरी मॉड्यूल खोज रहे हैं? अक्टूबर 2023 (फायरबेस बीओएम 32.5.0) से शुरू होकर, कोटलिन और जावा डेवलपर्स दोनों मुख्य लाइब्रेरी मॉड्यूल पर निर्भर हो सकते हैं (विवरण के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले प्रश्न देखें)।

उपयोगकर्ताओं को ईमेल लिंक द्वारा साइन इन करने के लिए, आपको पहले अपने फायरबेस प्रोजेक्ट के लिए ईमेल प्रदाता और ईमेल लिंक साइन-इन विधि को सक्षम करना होगा:

  1. फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
  2. साइन इन विधि टैब पर, ईमेल/पासवर्ड प्रदाता को सक्षम करें। ध्यान दें कि ईमेल लिंक साइन-इन का उपयोग करने के लिए ईमेल/पासवर्ड साइन-इन सक्षम होना चाहिए।
  3. उसी अनुभाग में, ईमेल लिंक (पासवर्ड रहित साइन-इन) साइन-इन विधि सक्षम करें।
  4. सहेजें पर क्लिक करें.

प्रमाणीकरण प्रवाह आरंभ करने के लिए, उपयोगकर्ता को एक इंटरफ़ेस प्रस्तुत करें जो उपयोगकर्ता को अपना ईमेल पता प्रदान करने के लिए प्रेरित करता है और फिर यह अनुरोध करने के लिए sendSignInLinkToEmail पर कॉल करें कि फायरबेस उपयोगकर्ता के ईमेल पर प्रमाणीकरण लिंक भेजे।

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

    • url : एंबेड करने के लिए डीप लिंक और पास की जाने वाली कोई भी अतिरिक्त स्थिति। लिंक के डोमेन को अधिकृत डोमेन की फायरबेस कंसोल सूची में श्वेतसूची में डालना होगा, जिसे साइन-इन विधि टैब (प्रमाणीकरण -> साइन-इन विधि) पर जाकर पाया जा सकता है। यदि उपयोगकर्ता के डिवाइस पर ऐप इंस्टॉल नहीं है और ऐप इंस्टॉल नहीं हो पा रहा है तो लिंक इस यूआरएल पर रीडायरेक्ट कर देगा।
    • androidPackageName और IOSBundleId : Android या Apple डिवाइस पर साइन-इन लिंक खोले जाने पर उपयोग किए जाने वाले ऐप्स। मोबाइल ऐप्स के माध्यम से ईमेल कार्रवाई लिंक खोलने के लिए फायरबेस डायनेमिक लिंक को कॉन्फ़िगर करने के तरीके के बारे में और जानें।
    • 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.");
                    }
                }
            });

सुरक्षा चिंताएं

साइन-इन लिंक को अनपेक्षित उपयोगकर्ता के रूप में या अनपेक्षित डिवाइस पर साइन इन करने से रोकने के लिए, फायरबेस ऑथ को साइन-इन प्रवाह पूरा करते समय उपयोगकर्ता का ईमेल पता प्रदान करना आवश्यक है। साइन-इन सफल होने के लिए, यह ईमेल पता उस पते से मेल खाना चाहिए जिस पर साइन-इन लिंक मूल रूप से भेजा गया था।

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

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

यह भी सुनिश्चित करें कि आपके लिंक को मध्यस्थ सर्वर द्वारा संभावित रूप से बाधित होने से बचाने के लिए आप उत्पादन में HTTPS URL का उपयोग करें।

एंड्रॉइड ऐप में साइन-इन पूरा करना

फायरबेस प्रमाणीकरण मोबाइल डिवाइस पर ईमेल लिंक भेजने के लिए फायरबेस डायनेमिक लिंक का उपयोग करता है। मोबाइल एप्लिकेशन के माध्यम से साइन-इन पूरा करने के लिए, आने वाले एप्लिकेशन लिंक का पता लगाने, अंतर्निहित डीप लिंक को पार्स करने और फिर साइन-इन पूरा करने के लिए एप्लिकेशन को कॉन्फ़िगर करना होगा।

मोबाइल एप्लिकेशन में खोले जाने वाले लिंक को भेजते समय फायरबेस ऑथ फायरबेस डायनेमिक लिंक का उपयोग करता है। इस सुविधा का उपयोग करने के लिए, डायनामिक लिंक को फायरबेस कंसोल में कॉन्फ़िगर किया जाना चाहिए

  1. फायरबेस डायनेमिक लिंक सक्षम करें:

    1. फायरबेस कंसोल में, डायनेमिक लिंक अनुभाग खोलें।
    2. यदि आपने अभी तक डायनामिक लिंक शर्तों को स्वीकार नहीं किया है और डायनामिक लिंक डोमेन नहीं बनाया है, तो अभी ऐसा करें।

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

      example.page.link

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

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

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

ऊपर वर्णित अनुसार लिंक प्राप्त होने के बाद, सत्यापित करें कि यह ईमेल लिंक प्रमाणीकरण के लिए है और साइन इन पूरा करें।

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

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

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

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

अधिक विवरण के लिए ईमेल गणना सुरक्षा पर दस्तावेज़ देखें।

अगले कदम

किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।

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

  • अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी को auth वेरिएबल से प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

आप किसी मौजूदा उपयोगकर्ता खाते से प्रमाणीकरण प्रदाता क्रेडेंशियल्स को लिंक करके उपयोगकर्ताओं को एकाधिक प्रमाणीकरण प्रदाताओं का उपयोग करके अपने ऐप में साइन इन करने की अनुमति दे सकते हैं।

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

Kotlin+KTX

Firebase.auth.signOut()

Java

FirebaseAuth.getInstance().signOut();