Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Android पर गुमनाम रूप से फायरबेस के साथ प्रमाणित करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

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

    Java

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

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

    (वैकल्पिक) BoM . का उपयोग किए बिना 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:21.0.8'
    }
    

    Kotlin+KTX

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

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

    (वैकल्पिक) BoM . का उपयोग किए बिना 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-ktx:21.0.8'
    }
    
  3. अगर आपने अभी तक अपने ऐप को अपने Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो इसे Firebase कंसोल से करें।
  4. अनाम प्रमाणीकरण सक्षम करें:
    1. फायरबेस कंसोल में, प्रामाणिक अनुभाग खोलें।
    2. साइन-इन विधि पृष्ठ पर, अनाम साइन-इन विधि को सक्षम करें।
    3. वैकल्पिक : यदि आपने अपने प्रोजेक्ट को Identity Platform के साथ Firebase प्रमाणीकरण में अपग्रेड किया है, तो आप स्वचालित क्लीन-अप सक्षम कर सकते हैं। जब आप इस सेटिंग को सक्षम करते हैं, तो 30 दिनों से अधिक पुराने अनाम खाते अपने आप हटा दिए जाएंगे। स्वचालित क्लीन-अप सक्षम परियोजनाओं में, अनाम प्रमाणीकरण को अब उपयोग सीमा या बिलिंग कोटा में नहीं गिना जाएगा। स्वचालित सफाई देखें।

गुमनाम रूप से फायरबेस के साथ प्रमाणित करें

जब कोई साइन-आउट उपयोगकर्ता किसी ऐप सुविधा का उपयोग करता है जिसके लिए Firebase के साथ प्रमाणीकरण की आवश्यकता होती है, तो निम्न चरणों को पूरा करके उपयोगकर्ता को गुमनाम रूप से साइन इन करें:

  1. अपनी गतिविधि की onCreate विधि में, FirebaseAuth ऑब्जेक्ट का साझा उदाहरण प्राप्त करें:

    Java

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin+KTX

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth
  2. अपनी गतिविधि प्रारंभ करते समय, यह देखने के लिए जांचें कि उपयोगकर्ता वर्तमान में साइन इन है या नहीं:

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    Kotlin+KTX

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }
  3. अंत में, एक अनाम उपयोगकर्ता के रूप में साइन इन करने के लिए साइन इन signInAnonymously को कॉल करें:

    Java

    mAuth.signInAnonymously()
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInAnonymously:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInAnonymously:failure", task.getException());
                        Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });

    Kotlin+KTX

    auth.signInAnonymously()
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInAnonymously:success")
                    val user = auth.currentUser
                    updateUI(user)
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInAnonymously:failure", task.exception)
                    Toast.makeText(baseContext, "Authentication failed.",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }
    यदि साइन-इन सफल होता है तो आप उपयोगकर्ता के खाते का डेटा प्राप्त करने के लिए getCurrentUser पद्धति का उपयोग कर सकते हैं।

अनाम खाते को स्थायी खाते में बदलें

जब कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करता है, तो हो सकता है कि आप उन्हें अपने नए खाते के साथ अपना काम जारी रखने की अनुमति देना चाहें—उदाहरण के लिए, हो सकता है कि आप साइन अप करने से पहले उपयोगकर्ता द्वारा अपने शॉपिंग कार्ट में जोड़े गए आइटम को उनके नए खाते में उपलब्ध कराना चाहें। खाते की खरीदारी की टोकरी। ऐसा करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. जब उपयोगकर्ता साइन अप करता है, तो उपयोगकर्ता के प्रमाणीकरण प्रदाता के लिए FirebaseAuth.signInWith विधियों में से किसी एक को कॉल करने तक, लेकिन इसमें शामिल नहीं, साइन-इन प्रवाह पूरा करें। उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, फेसबुक एक्सेस टोकन, या ईमेल पता और पासवर्ड प्राप्त करें।
  2. नए प्रमाणीकरण प्रदाता के लिए AuthCredential प्राप्त करें:

    गूगल साइन-इन

    Java

    AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);

    Kotlin+KTX

    val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
    फेसबुक लोगिन

    Java

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());

    Kotlin+KTX

    val credential = FacebookAuthProvider.getCredential(token.token)
    ईमेल-पासवर्ड साइन-इन

    Java

    AuthCredential credential = EmailAuthProvider.getCredential(email, password);

    Kotlin+KTX

    val credential = EmailAuthProvider.getCredential(email, password)
  3. AuthCredential ऑब्जेक्ट को साइन-इन उपयोगकर्ता के linkWithCredential विधि में पास करें:

    Java

    mAuth.getCurrentUser().linkWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        Log.d(TAG, "linkWithCredential:success");
                        FirebaseUser user = task.getResult().getUser();
                        updateUI(user);
                    } else {
                        Log.w(TAG, "linkWithCredential:failure", task.getException());
                        Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });

    Kotlin+KTX

    auth.currentUser!!.linkWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    Log.d(TAG, "linkWithCredential:success")
                    val user = task.result?.user
                    updateUI(user)
                } else {
                    Log.w(TAG, "linkWithCredential:failure", task.exception)
                    Toast.makeText(baseContext, "Authentication failed.",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }

यदि linkWithCredential के लिए कॉल सफल होती है, तो उपयोगकर्ता का नया खाता अनाम खाते के फायरबेस डेटा तक पहुंच सकता है।

स्वचालित सफाई

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

  • स्वचालित क्लीन-अप सक्षम करने के बाद बनाए गए किसी भी अनाम खाते को निर्माण के 30 दिनों के बाद किसी भी समय स्वचालित रूप से हटाया जा सकता है।
  • स्वचालित क्लीन-अप सक्षम करने से पहले बनाए गए अनाम खाते स्वचालित क्लीन-अप सक्षम करने के 30 दिनों के बाद स्वचालित रूप से हटाए जाने के पात्र होंगे।
  • यदि आप स्वत: सफाई बंद कर देते हैं, तो हटाए जाने के लिए निर्धारित सभी अनाम खाते हटाए जाने के लिए निर्धारित रहेंगे। इन खातों की गणना उपयोग सीमा या बिलिंग कोटा में नहीं की जाती है।
  • यदि आप किसी अनाम खाते को किसी साइन-इन विधि से लिंक करके "अपग्रेड" करते हैं, तो खाता स्वचालित रूप से हटाया नहीं जाएगा।

यदि आप यह देखना चाहते हैं कि इस सुविधा को सक्षम करने से पहले कितने उपयोगकर्ता प्रभावित होंगे, और आपने अपने प्रोजेक्ट को पहचान प्लेटफ़ॉर्म के साथ Firebase प्रमाणीकरण में अपग्रेड किया है, तो आप क्लाउड लॉगिंग में is_anon द्वारा फ़िल्टर कर सकते हैं।

अगले कदम

अब जबकि उपयोगकर्ता Firebase से प्रमाणित कर सकते हैं, आप Firebase नियमों का उपयोग करके अपने Firebase डेटाबेस में डेटा तक उनकी पहुंच को नियंत्रित कर सकते हैं।