Firebase के साथ पुष्टि करने के लिए, Firebase Authentication का इस्तेमाल करके कुछ समय के लिए गुमनाम खाते बनाए जा सकते हैं और उनका इस्तेमाल किया जा सकता है. इन अस्थायी गुमनाम खातों का इस्तेमाल, उन लोगों को अनुमति देने के लिए किया जा सकता है जिन्होंने अब तक आपके ऐप्लिकेशन के लिए साइन अप नहीं किया है. इससे वे सुरक्षा नियमों के तहत सुरक्षित किए गए डेटा के साथ काम कर सकते हैं. अगर कोई उपयोगकर्ता पहचान छिपाकर आपके ऐप्लिकेशन के लिए साइन अप करता है, तो उसके साइन-इन क्रेडेंशियल को पहचान छिपाकर बनाए गए खाते से लिंक किया जा सकता है. इससे वह आने वाले समय में, सुरक्षित किए गए अपने डेटा का इस्तेमाल कर पाएगा.
शुरू करने से पहले
- अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
-
अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल
(आम तौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
) में, Android के लिए Firebase Authentication लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करें.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") }
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") }
- अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से कनेक्ट करें.
- बिना पहचान बताए पुष्टि करने की सुविधा चालू करें:
- Firebase कंसोल में, Auth सेक्शन खोलें.
- साइन-इन करने के तरीके पेज पर, बिना नाम के साइन-इन करने का तरीका चालू करें.
- ज़रूरी नहीं है: अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो अपने-आप साफ़ होने की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, 30 दिन से ज़्यादा पुराने गुमनाम खातों को अपने-आप मिटा दिया जाएगा. जिन प्रोजेक्ट में अपने-आप साफ़ होने की सुविधा चालू है उनमें, नाम छिपाकर पुष्टि करने की सुविधा को इस्तेमाल की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा. अपने-आप साफ़ होने की सुविधा देखें.
Firebase की मदद से, बिना पहचान बताए पुष्टि करना
जब साइन आउट किया हुआ कोई उपयोगकर्ता, ऐप्लिकेशन की ऐसी सुविधा का इस्तेमाल करता है जिसके लिए Firebase से पुष्टि करना ज़रूरी है, तो यहां दिया गया तरीका अपनाकर उपयोगकर्ता को पहचान छिपाकर साइन इन करें:
- अपनी गतिविधि के
onCreate
तरीके में,FirebaseAuth
ऑब्जेक्ट का शेयर किया गया इंस्टेंस पाएं:Kotlin
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- अपनी गतिविधि शुरू करते समय, देखें कि उपयोगकर्ता ने फ़िलहाल साइन इन किया है या नहीं:
Kotlin
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
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 आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं. पुष्टि करने वाली नई सेवा के लिए
AuthCredential
पाएं:Google साइन-इन
Kotlin
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
Facebook Login
Kotlin
val credential = FacebookAuthProvider.getCredential(token.token)
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
ईमेल और पासवर्ड से साइन-इन करना
Kotlin
val credential = EmailAuthProvider.getCredential(email, password)
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
साइन इन करने वाले उपयोगकर्ता के
AuthCredential
ऑब्जेक्ट कोlinkWithCredential
तरीके से पास करें:Kotlin
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
कॉल पूरा हो जाता है, तो उपयोगकर्ता का नया खाता, पहचान छिपाकर बनाए गए खाते के Firebase डेटा को ऐक्सेस कर सकता है.
अपने-आप साफ़ होने की सुविधा
अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो Firebase कंसोल में जाकर, अपने-आप साफ़ होने की सुविधा चालू की जा सकती है. इस सुविधा को चालू करने पर, Firebase को यह अनुमति मिल जाती है कि वह 30 दिन से ज़्यादा पुराने ऐसे खातों को अपने-आप मिटा दे जिनमें उपयोगकर्ता की पहचान नहीं की गई है. जिन प्रोजेक्ट में अपने-आप साफ़ होने की सुविधा चालू होती है उनमें पहचान छिपाकर पुष्टि करने की सुविधा को इस्तेमाल की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा.
- अपने-आप साफ़ होने की सुविधा चालू करने के बाद बनाए गए किसी भी गुमनाम खाते को बनाने के 30 दिनों के बाद, कभी भी अपने-आप मिटाया जा सकता है.
- ऑटोमैटिक क्लीन-अप की सुविधा चालू करने के 30 दिनों के बाद, मौजूदा गुमनाम खाते अपने-आप मिट जाएंगे.
- अपने-आप साफ़ होने की सुविधा बंद करने पर, मिटाए जाने के लिए शेड्यूल किए गए सभी गुमनाम खाते, मिटाए जाने के लिए शेड्यूल किए गए खाते बने रहेंगे.
- अगर आपने किसी भी साइन-इन तरीके से लिंक करके, किसी गुमनाम खाते को "अपग्रेड" किया है, तो वह खाता अपने-आप नहीं मिटेगा.
अगर आपको यह सुविधा चालू करने से पहले यह देखना है कि इससे कितने उपयोगकर्ताओं पर असर पड़ेगा और आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो Cloud Logging में is_anon
के हिसाब से फ़िल्टर किया जा सकता है.
अगले चरण
अब उपयोगकर्ता Firebase की मदद से पुष्टि कर सकते हैं. इसलिए, Firebase के नियमों का इस्तेमाल करके, अपने Firebase डेटाबेस में मौजूद डेटा को ऐक्सेस करने की उनकी अनुमति को कंट्रोल किया जा सकता है.