उपयोगकर्ता बनाएं
Firebase प्रोजेक्ट में नया उपयोगकर्ता बनाने के चार तरीके:
createUserWithEmailAndPassword()
तरीके को कॉल करें.- Google साइन इन, Facebook लॉगिन या Apple जैसे फ़ेडरेटेड आइडेंटिटी प्रोवाइडर का इस्तेमाल करके, पहली बार किसी उपयोगकर्ता के लिए साइन इन करना.
उपयोगकर्ता पेज पर, Firebase कंसोल के पुष्टि सेक्शन से भी, पासवर्ड से पुष्टि किए गए नए उपयोगकर्ता बनाए जा सकते हैं.
उपयोगकर्ता की प्रोफ़ाइल पाएं
किसी व्यक्ति की प्रोफ़ाइल की जानकारी पाने के लिए, User
की प्रॉपर्टी का इस्तेमाल करें. मौजूदा उपयोगकर्ता की जानकारी देने वाला User
ऑब्जेक्ट पाने के तीन तरीके हैं:
authStateChanges
,idTokenChanges
, औरuserChanges
स्ट्रीम: अगर किसी उपयोगकर्ता की पुष्टि नहीं हुई है, तो आपके दर्शकों को मौजूदाUser
याnull
मिलेगा:FirebaseAuth.instance .authStateChanges() .listen((User? user) { if (user != null) { print(user.uid); } });
ऐप्लिकेशन शुरू होने पर, लोकल स्टोरेज से उपयोगकर्ता के क्रेडेंशियल (अगर कोई है) के रीस्टोर होने के बाद इवेंट ट्रिगर होता है. इसका मतलब है कि उपयोगकर्ता की स्थिति शुरू होने पर, लिसनर को हमेशा कॉल किया जाता है. इसके बाद, जब भी पुष्टि की स्थिति बदलती है, तो उपयोगकर्ता की अपडेट की गई स्थिति के साथ एक नया इवेंट दर्ज किया जाएगा.
पुष्टि करने की स्थिति को सुनकर, ऐसा यूज़र इंटरफ़ेस बनाया जा सकता है जो पुष्टि की स्थिति में होने वाले इन बदलावों पर प्रतिक्रिया देता है.
पुष्टि करने के (
signIn
-) तरीकों से मिलाUserCredential
ऑब्जेक्ट:UserCredential
ऑब्जेक्ट में, मौजूदाUser
वालीuser
प्रॉपर्टी है:final userCredential = await FirebaseAuth.instance.signInWithCredential(credential); final user = userCredential.user; print(user?.uid);
FirebaseAuth
इंस्टेंस कीcurrentUser
प्रॉपर्टी: अगर आपको पक्के तौर पर पता है कि इस समय उपयोगकर्ता ने साइन-इन किया हुआ है, तोcurrentUser
प्रॉपर्टी सेUser
को ऐक्सेस किया जा सकता है:if (FirebaseAuth.instance.currentUser != null) { print(FirebaseAuth.instance.currentUser?.uid); }
currentUser
दो वजहों सेnull
हो सकता है:- उपयोगकर्ता ने साइन इन नहीं किया है.
- प्रमाणीकरण ऑब्जेक्ट ने शुरू करना पूरा नहीं किया है. अगर लोगों की साइन-इन स्थिति को ट्रैक करने के लिए, लिसनर का इस्तेमाल किया जाता है, तो आपको इस मामले को मैनेज करने की ज़रूरत नहीं है.
उपयोगकर्ता की कंपनी से जुड़ी प्रोफ़ाइल की जानकारी पाना
किसी उपयोगकर्ता से लिंक की गई, साइन-इन करने वाली कंपनियों से प्रोफ़ाइल की जानकारी पाने के लिए, providerData
प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए:
if (user != null) {
for (final providerProfile in user.providerData) {
// ID of the provider (google.com, apple.com, etc.)
final provider = providerProfile.providerId;
// UID specific to the provider
final uid = providerProfile.uid;
// Name, email address, and profile photo URL
final name = providerProfile.displayName;
final emailAddress = providerProfile.email;
final profilePhoto = providerProfile.photoURL;
}
}
उपयोगकर्ता की प्रोफ़ाइल अपडेट करना
update
- तरीकों की मदद से, उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी, जैसे कि उपयोगकर्ता का डिसप्ले नेम और प्रोफ़ाइल फ़ोटो का यूआरएल अपडेट किया जा सकता है. उदाहरण के लिए:
await user?.updateDisplayName("Jane Q. User");
await user?.updatePhotoURL("https://example.com/jane-q-user/profile.jpg");
उपयोगकर्ता का ईमेल पता सेट करें
updateEmail()
तरीके का इस्तेमाल करके, उपयोगकर्ता का ईमेल पता सेट किया जा सकता है. उदाहरण के लिए:
await user?.updateEmail("janeq@example.com");
उपयोगकर्ता को पुष्टि करने के लिए ईमेल भेजें
sendEmailVerification()
तरीके से किसी उपयोगकर्ता को पते की पुष्टि करने के लिए ईमेल भेजा जा सकता है. उदाहरण के लिए:
await user?.sendEmailVerification();
ईमेल टेंप्लेट वाले पेज पर, Firebase कंसोल के पुष्टि करने वाले सेक्शन में इस्तेमाल किए जाने वाले ईमेल टेंप्लेट को अपनी पसंद के मुताबिक बनाया जा सकता है. Firebase सहायता केंद्र में ईमेल टेंप्लेट देखें.
पुष्टि करने के लिए ईमेल भेजते समय, ऐप्लिकेशन पर वापस रीडायरेक्ट करने के लिए, यूआरएल जारी रखें विकल्प का इस्तेमाल करके, स्थिति को पास किया जा सकता है.
इसके अलावा, ईमेल भेजने से पहले, पुष्टि करने वाले इंस्टेंस में भाषा कोड को अपडेट करके, पुष्टि करने वाले ईमेल को स्थानीय भाषा में बदला जा सकता है. उदाहरण के लिए:
await FirebaseAuth.instance.setLanguageCode("fr");
await user?.sendEmailVerification();
उपयोगकर्ता का पासवर्ड सेट करना
updatePassword()
तरीके से उपयोगकर्ता का पासवर्ड सेट किया जा सकता है. उदाहरण के लिए:
await user?.updatePassword(newPassword);
पासवर्ड रीसेट करने के लिए ईमेल भेजें
sendPasswordResetEmail()
तरीके का इस्तेमाल करके, किसी उपयोगकर्ता को पासवर्ड फिर सेट करने का ईमेल भेजा जा सकता है. उदाहरण के लिए:
await FirebaseAuth.instance
.sendPasswordResetEmail(email: "user@example.com");
ईमेल टेंप्लेट वाले पेज पर, Firebase कंसोल के पुष्टि करने वाले सेक्शन में इस्तेमाल किए जाने वाले ईमेल टेंप्लेट को अपनी पसंद के मुताबिक बनाया जा सकता है. Firebase सहायता केंद्र में ईमेल टेंप्लेट देखें.
पासवर्ड रीसेट ईमेल भेजते समय ऐप्लिकेशन पर वापस रीडायरेक्ट करने के लिए, यूआरएल जारी रखें के ज़रिए राज्य को पास करना भी मुमकिन है.
इसके अलावा, ईमेल भेजने से पहले, पुष्टि वाले इंस्टेंस पर भाषा कोड को अपडेट करके, पासवर्ड फिर से सेट करने की सुविधा वाले ईमेल को स्थानीय भाषा में बदला जा सकता है. उदाहरण के लिए:
await FirebaseAuth.instance.setLanguageCode("fr");
आप Firebase कंसोल से भी पासवर्ड रीसेट के ईमेल भेज सकते हैं.
उपयोगकर्ता को हटाना
आपके पास delete()
तरीके से किसी उपयोगकर्ता खाते को मिटाने का विकल्प होता है. उदाहरण के लिए:
await user?.delete();
उपयोगकर्ता पेज पर मौजूद Firebase कंसोल के पुष्टि करने वाले सेक्शन से भी उपयोगकर्ताओं को हटाया जा सकता है.
किसी उपयोगकर्ता की फिर से पुष्टि करें
सुरक्षा से जुड़ी कुछ संवेदनशील कार्रवाइयों के लिए यह ज़रूरी है कि उपयोगकर्ता ने हाल ही में साइन इन किया हो. इन कार्रवाइयों में
कोई खाता मिटाना, मुख्य ईमेल पता सेट करना, और
पासवर्ड बदलना शामिल है. अगर आपने इनमें से कोई कार्रवाई की है और उपयोगकर्ता ने काफ़ी पहले साइन इन किया है, तो कार्रवाई नहीं हो पाती है और requires-recent-login
कोड के साथ एक FirebaseAuthException
दिखता है.
ऐसा होने पर, उपयोगकर्ता से नए साइन-इन क्रेडेंशियल
लेकर और reauthenticate
को क्रेडेंशियल भेजकर, उपयोगकर्ता की फिर से पुष्टि करें. उदाहरण के लिए:
// Prompt the user to re-provide their sign-in credentials.
// Then, use the credentials to reauthenticate:
await user?.reauthenticateWithCredential(credential);
उपयोगकर्ता खाते इंपोर्ट करें
Firebase सीएलआई के auth:import
कमांड का इस्तेमाल करके, किसी फ़ाइल से अपने Firebase प्रोजेक्ट में उपयोगकर्ता खातों को इंपोर्ट किया जा सकता है. उदाहरण के लिए:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14