Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

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

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

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

  1. यदि आप पहले से नहीं हैं, तो अपने Android प्रोजेक्ट में Firebase जोड़ें
  2. अपने प्रोजेक्ट-लेवल build.gradle फ़ाइल में, अपने buildscript और allprojects दोनों वर्गों में Google के buildscript रिपॉजिटरी को शामिल करना सुनिश्चित करें।
  3. अपने मॉड्यूल (ऐप-स्तर) ग्रेड फ़ाइल (आमतौर पर app/build.gradle ) के लिए app/build.gradle प्रमाणीकरण एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें:
    implementation 'com.google.firebase:firebase-auth:19.4.0'
  4. यदि आपने अभी तक अपने ऐप को अपने फायरबेस प्रोजेक्ट से कनेक्ट नहीं किया है, तो फायरबेस कंसोल से करें
  5. अनाम स्थिति सक्षम करें:
    1. में Firebase कंसोल , प्राधिकरण अनुभाग खोलें।
    2. साइन-इन मेथड्स पृष्ठ पर, अनाम साइन-इन विधि को सक्षम करें।

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

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

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

    जावा

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

    Kotlin + KTX

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

    जावा

    @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 एक अनाम उपयोगकर्ता के रूप में प्रवेश करने के लिए:

    जावा

    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 नया प्रमाणीकरण प्रदाता के लिए:

    Google साइन-इन

    जावा

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

    Kotlin + KTX

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

    जावा

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

    Kotlin + KTX

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

    जावा

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

    Kotlin + KTX

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

    जावा

    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 लिए कॉल सफल होता है, तो उपयोगकर्ता का नया खाता अनाम खाते के फायरबेस डेटा तक पहुंच सकता है।

अगला कदम

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