आप फायरबेस के साथ प्रमाणित करने के लिए अस्थायी अनाम खातों को बनाने और उपयोग करने के लिए फायरबेस प्रमाणीकरण का उपयोग कर सकते हैं। इन अस्थायी अनाम खातों का उपयोग उन उपयोगकर्ताओं को अनुमति देने के लिए किया जा सकता है जिन्होंने सुरक्षा नियमों द्वारा संरक्षित डेटा के साथ काम करने के लिए अभी तक आपके ऐप पर साइन अप नहीं किया है। यदि कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करने का निर्णय लेता है, तो आप उनके साइन-इन क्रेडेंशियल्स को अनाम खाते से लिंक कर सकते हैं ताकि वे भविष्य के सत्रों में अपने संरक्षित डेटा के साथ काम करना जारी रख सकें।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो प्रारंभ करें मार्गदर्शिका में दिए गए चरणों का पालन करें।
अनाम साइन-इन सक्षम करें:
- फायरबेस कंसोल के ऑथेंटिकेशन सेक्शन में, साइन इन मेथड पेज खोलें।
- साइन इन विधि पृष्ठ से, अनाम साइन-इन विधि को सक्षम करें और सहेजें पर क्लिक करें।
गुमनाम रूप से फायरबेस के साथ प्रमाणित करें
जब एक साइन-आउट उपयोगकर्ता ऐप सुविधा का उपयोग करता है जिसके लिए signInAnonymously()
कॉल करके साइन इन करें:
try {
final userCredential =
await FirebaseAuth.instance.signInAnonymously();
print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
switch (e.code) {
case "operation-not-allowed":
print("Anonymous auth hasn't been enabled for this project.");
break;
default:
print("Unknown error.");
}
}
अनाम खाते को स्थायी खाते में बदलें
जब कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करता है, तो हो सकता है कि आप उन्हें अपने नए खाते के साथ अपना काम जारी रखने की अनुमति देना चाहें—उदाहरण के लिए, हो सकता है कि आप उपयोगकर्ता द्वारा साइन अप करने से पहले उनके शॉपिंग कार्ट में जोड़े गए आइटम को उनके नए खाते में उपलब्ध कराना चाहें खाते की खरीदारी की टोकरी। ऐसा करने के लिए, निम्नलिखित चरणों को पूरा करें:
जब उपयोगकर्ता साइन अप करता है, तो उपयोगकर्ता के प्रमाणीकरण प्रदाता के लिए साइन-इन प्रवाह पूर्ण करें, लेकिन इसमें शामिल नहीं है, किसी एक साइन-इन-विधि को
signInWith
करना। उदाहरण के लिए, उपयोगकर्ता का Google ID टोकन, Facebook एक्सेस टोकन, या ईमेल पता और पासवर्ड प्राप्त करें।नए प्रमाणीकरण प्रदाता के लिए एक
Credential
ऑब्जेक्ट प्राप्त करें:// Google Sign-in final credential = GoogleAuthProvider.credential(idToken: idToken); // Email and password sign-in final credential = EmailAuthProvider.credential(email: emailAddress, password: password); // Etc.
साइन-इन उपयोगकर्ता के
linkWithCredential()
विधि मेंCredential
ऑब्जेक्ट पास करें:try { final userCredential = await FirebaseAuth.instance.currentUser ?.linkWithCredential(credential); } on FirebaseAuthException catch (e) { switch (e.code) { case "provider-already-linked": print("The provider has already been linked to the user."); break; case "invalid-credential": print("The provider's credential is not valid."); break; case "credential-already-in-use": print("The account corresponding to the credential already exists, " "or is already linked to a Firebase User."); break; // See the API reference for the full list of error codes. default: print("Unknown error."); } ```
यदि linkWithCredential()
का कॉल सफल होता है, तो उपयोगकर्ता का नया खाता अनाम खाते के फायरबेस डेटा तक पहुंच सकता है।
अगले कदम
उपयोगकर्ता द्वारा एक नया खाता बनाने के बाद, यह खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत किया जाता है, और उपयोगकर्ता द्वारा उपयोग की जाने वाली साइन-इन विधि की परवाह किए बिना, आपके प्रोजेक्ट में प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए उपयोग किया जा सकता है।
अपने ऐप्लिकेशन में, आप User
ऑब्जेक्ट से उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी प्राप्त कर सकते हैं। उपयोगकर्ता प्रबंधित करें देखें।
आपके फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप auth
चर से साइन-इन किए गए उपयोगकर्ता की विशिष्ट उपयोगकर्ता आईडी प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।
आप उपयोगकर्ताओं को एक मौजूदा उपयोगकर्ता खाते से प्रामाणिक प्रदाता क्रेडेंशियल्स) लिंक करके एकाधिक प्रमाणीकरण प्रदाताओं का उपयोग करके अपने ऐप में साइन इन करने की अनुमति दे सकते हैं।
किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut()
कॉल करें:
await FirebaseAuth.instance.signOut();