आप फायरबेस के साथ प्रमाणित करने के लिए अस्थायी अनाम खातों को बनाने और उपयोग करने के लिए फायरबेस प्रमाणीकरण का उपयोग कर सकते हैं। इन अस्थायी अनाम खातों का उपयोग उन उपयोगकर्ताओं को अनुमति देने के लिए किया जा सकता है जिन्होंने सुरक्षा नियमों द्वारा सुरक्षित डेटा के साथ काम करने के लिए अभी तक आपके ऐप पर साइन अप नहीं किया है। यदि कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करने का निर्णय लेता है, तो आप उनके साइन-इन क्रेडेंशियल्स को अनाम खाते से लिंक कर सकते हैं ताकि वे भविष्य के सत्रों में अपने संरक्षित डेटा के साथ काम करना जारी रख सकें।
शुरू करने से पहले
- यदि आपने पहले से नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें ।
- अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर
<project>/<app-module>/build.gradle
) में, फायरबेस ऑथेंटिकेशन एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें। हम लाइब्रेरी वर्ज़निंग को नियंत्रित करने के लिए Firebase Android BoM का उपयोग करने की सलाह देते हैं।Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' }
Firebase Android BoM का उपयोग करके, आपका ऐप हमेशा Firebase Android पुस्तकालयों के संगत संस्करणों का उपयोग करेगा।
(वैकल्पिक) BoM का उपयोग किए बिना Firebase लाइब्रेरी निर्भरताएँ जोड़ें
यदि आप Firebase BoM का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक Firebase लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए बीओएम का उपयोग करने की दृढ़ता से अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।
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:22.0.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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' }
Firebase Android BoM का उपयोग करके, आपका ऐप हमेशा Firebase Android पुस्तकालयों के संगत संस्करणों का उपयोग करेगा।
(वैकल्पिक) BoM का उपयोग किए बिना Firebase लाइब्रेरी निर्भरताएँ जोड़ें
यदि आप Firebase BoM का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक Firebase लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए बीओएम का उपयोग करने की दृढ़ता से अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।
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.0.0' }
- अगर आपने अभी तक अपने ऐप को अपने फायरबेस प्रोजेक्ट से कनेक्ट नहीं किया है, तो फायरबेस कंसोल से ऐसा करें।
- अनाम प्रमाणन सक्षम करें:
- Firebase कंसोल में, प्रामाणिक अनुभाग खोलें।
- साइन-इन मेथड्स पेज पर, बेनामी साइन-इन मेथड को सक्षम करें।
- वैकल्पिक : यदि आपने अपने प्रोजेक्ट को पहचान प्लेटफ़ॉर्म के साथ Firebase प्रमाणीकरण में अपग्रेड किया है, तो आप स्वचालित क्लीन-अप को सक्षम कर सकते हैं। जब आप इस सेटिंग को सक्षम करते हैं, तो 30 दिनों से अधिक पुराने अज्ञात खाते स्वचालित रूप से हटा दिए जाएँगे। स्वचालित क्लीन-अप सक्षम वाली परियोजनाओं में, अनाम प्रमाणीकरण अब उपयोग सीमा या बिलिंग कोटा की ओर नहीं गिना जाएगा। स्वचालित सफाई देखें।
गुमनाम रूप से फायरबेस के साथ प्रमाणित करें
जब साइन-आउट किया गया उपयोगकर्ता ऐप सुविधा का उपयोग करता है जिसके लिए फायरबेस के साथ प्रमाणीकरण की आवश्यकता होती है, तो निम्न चरणों को पूरा करके उपयोगकर्ता को गुमनाम रूप से साइन इन करें:
- आपकी गतिविधि की
onCreate
विधि में,FirebaseAuth
ऑब्जेक्ट का साझा उदाहरण प्राप्त करें:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- अपनी गतिविधि प्रारंभ करते समय, यह देखने के लिए जांचें कि उपयोगकर्ता वर्तमान में साइन इन है या नहीं:
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) }
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); }
- अंत में, गुमनाम उपयोगकर्ता के रूप में साइन इन करने के लिए
signInAnonymously
कॉल करें:यदि साइन-इन सफल हो जाता है तो आप उपयोगकर्ता के खाते का डेटा प्राप्त करने के लिए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) } }
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); } } });
getCurrentUser
विधि का उपयोग कर सकते हैं।
अनाम खाते को स्थायी खाते में बदलें
जब कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करता है, तो हो सकता है कि आप उन्हें अपने नए खाते के साथ अपना काम जारी रखने की अनुमति देना चाहें—उदाहरण के लिए, हो सकता है कि आप उपयोगकर्ता द्वारा साइन अप करने से पहले उनके शॉपिंग कार्ट में जोड़े गए आइटम को उनके नए खाते में उपलब्ध कराना चाहें खाते की खरीदारी की टोकरी। ऐसा करने के लिए, निम्नलिखित चरणों को पूरा करें:
- जब उपयोगकर्ता साइन अप करता है, तो उपयोगकर्ता के प्रमाणीकरण प्रदाता के लिए साइन-इन प्रवाह पूर्ण करें, लेकिन इसमें शामिल नहीं है,
FirebaseAuth.signInWith
विधियों में से किसी एक को कॉल करना। उदाहरण के लिए, उपयोगकर्ता का Google ID टोकन, Facebook एक्सेस टोकन, या ईमेल पता और पासवर्ड प्राप्त करें। नए प्रमाणीकरण प्रदाता के लिए
AuthCredential
प्राप्त करें:गूगल साइन-इन
Kotlin+KTX
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
फेसबुक लॉग इन
Kotlin+KTX
val credential = FacebookAuthProvider.getCredential(token.token)
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
ईमेल-पासवर्ड साइन-इन
Kotlin+KTX
val credential = EmailAuthProvider.getCredential(email, password)
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
साइन-इन उपयोगकर्ता के
linkWithCredential
विधि के लिएAuthCredential
ऑब्जेक्ट पास करें: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) } }
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); } } });
यदि
linkWithCredential
पर कॉल सफल हो जाती है, तो उपयोगकर्ता का नया खाता अनाम खाते के फायरबेस डेटा तक पहुंच सकता है।स्वचालित सफाई
यदि आपने अपने प्रोजेक्ट को आइडेंटिटी प्लेटफॉर्म के साथ फायरबेस ऑथेंटिकेशन में अपग्रेड किया है, तो आप फायरबेस कंसोल में स्वचालित क्लीन-अप को सक्षम कर सकते हैं। जब आप इस सुविधा को सक्षम करते हैं तो आप अनुमति देते हैं, फायरबेस 30 दिनों से पुराने अज्ञात खातों को स्वचालित रूप से हटाने के लिए। स्वचालित क्लीन-अप सक्षम वाली परियोजनाओं में, अज्ञात प्रमाणीकरण उपयोग सीमा या बिलिंग कोटा की ओर नहीं गिना जाएगा।
- स्वचालित क्लीन-अप को सक्षम करने के बाद बनाए गए कोई भी अनाम खाते, निर्माण के 30 दिनों के बाद किसी भी समय स्वचालित रूप से हटाए जा सकते हैं।
- स्वचालित क्लीन-अप को सक्षम करने से पहले बनाए गए अज्ञात खाते स्वचालित क्लीन-अप को सक्षम करने के 30 दिन बाद से स्वचालित रूप से हटाने के योग्य होंगे।
- यदि आप स्वत: क्लीन-अप को बंद कर देते हैं, तो हटाए जाने के लिए शेड्यूल किया गया कोई भी अनाम खाता हटाए जाने के लिए शेड्यूल रहेगा। इन खातों की उपयोग सीमा या बिलिंग कोटा में गणना नहीं की जाती है।
- यदि आप किसी अज्ञात खाते को किसी साइन-इन विधि से लिंक करके "अपग्रेड" करते हैं, तो खाता स्वचालित रूप से हटाया नहीं जाएगा।
यदि आप यह देखना चाहते हैं कि इस सुविधा को सक्षम करने से पहले कितने उपयोगकर्ता प्रभावित होंगे, और आपने अपने प्रोजेक्ट को पहचान प्लेटफ़ॉर्म के साथ Firebase प्रमाणीकरण में अपग्रेड कर लिया है, तो आप क्लाउड लॉगिंग में
is_anon
द्वारा फ़िल्टर कर सकते हैं।अगले कदम
अब जबकि उपयोगकर्ता Firebase के साथ प्रमाणित कर सकते हैं, आप Firebase नियमों का उपयोग करके अपने Firebase डेटाबेस में डेटा तक उनकी पहुंच को नियंत्रित कर सकते हैं।
जब तक कुछ अलग से न बताया जाए, तब तक इस पेज की सामग्री को Creative Commons Attribution 4.0 License के तहत और कोड के नमूनों को Apache 2.0 License के तहत लाइसेंस मिला है. ज़्यादा जानकारी के लिए, Google Developers साइट नीतियां देखें. Oracle और/या इससे जुड़ी हुई कंपनियों का, Java एक रजिस्टर किया हुआ ट्रेडमार्क है.
आखिरी बार 2023-06-06 (UTC) को अपडेट किया गया.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"वह जानकारी मौजूद नहीं है जो मुझे चाहिए" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"बहुत मुश्किल है / बहुत सारे चरण हैं" },{ "type": "thumb-down", "id": "outOfDate", "label":"पुराना" },{ "type": "thumb-down", "id": "translationIssue", "label":"अनुवाद से जुड़ी समस्या" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"सैंपल / कोड से जुड़ी समस्या" },{ "type": "thumb-down", "id": "otherDown", "label":"अन्य" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"समझने में आसान है" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"मेरी समस्या हल हो गई" },{ "type": "thumb-up", "id": "otherUp", "label":"अन्य" }]