Firebase में उपयोगकर्ताओं को मैनेज करें

उपयोगकर्ता बनाएं

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);
        }
      });
    

    ऐप्लिकेशन के शुरू होने पर, अगर उपयोगकर्ता के क्रेडेंशियल (अगर कोई है) के बाद कोई इवेंट ट्रिगर होता है लोकल स्टोरेज को पहले जैसा कर दिया गया है. इसका मतलब है कि आपके सुनने वालों को हमेशा तब कॉल किया जाता है, जब उपयोगकर्ता की स्थिति शुरू होती है. इसके बाद, जब भी पुष्टि की स्थिति में बदलाव होता है, तो उपयोगकर्ता की अपडेट की गई स्थिति के साथ एक नया इवेंट दिखेगा.

    पुष्टि करने की स्थिति को सुनकर, ऐसा यूज़र इंटरफ़ेस बनाया जा सकता है जो पुष्टि करने की स्थिति में होने वाले इन बदलावों पर प्रतिक्रिया देता है.

  • पुष्टि करने से मिला UserCredential ऑब्जेक्ट, (signIn-) तरीके: 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 सहायता केंद्र.

राज्य को किसी वापस रीडायरेक्ट करने के लिए यूआरएल जारी रखें को ऐप पर अपडेट करें.

इसके अलावा, पुष्टि करने के लिए लिंक की भाषा अपडेट करके, उसे स्थानीय भाषा में भेजा जा सकता है ईमेल भेजने से पहले Auth इंस्टेंस पर कोड. उदाहरण के लिए:

await FirebaseAuth.instance.setLanguageCode("fr");
await user?.sendEmailVerification();

उपयोगकर्ता का पासवर्ड सेट करना

updatePassword() तरीके से उपयोगकर्ता का पासवर्ड सेट किया जा सकता है. उदाहरण के लिए:

await user?.updatePassword(newPassword);

पासवर्ड रीसेट करने के लिए ईमेल भेजें

आपके पास sendPasswordResetEmail() वाले किसी उपयोगकर्ता को पासवर्ड फिर सेट करने का ईमेल भेजने का विकल्प है तरीका. उदाहरण के लिए:

await FirebaseAuth.instance
    .sendPasswordResetEmail(email: "user@example.com");

आप उस ईमेल टेम्प्लेट को कस्टमाइज़ कर सकते है जिसका उपयोग के प्रमाणीकरण अनुभाग में किया जाता है Firebase कंसोल में जाकर, ईमेल टेंप्लेट के पेज पर जा सकते हैं. इसमें ईमेल टेम्प्लेट देखें Firebase सहायता केंद्र.

राज्य को किसी वापस रीडायरेक्ट करने के लिए यूआरएल जारी रखें ऐप्लिकेशन को पासवर्ड रीसेट ईमेल भेजते समय.

इसके अलावा, पासवर्ड रीसेट ईमेल की भाषा अपडेट करके उसे स्थानीय भाषा में भी बदला जा सकता है ईमेल भेजने से पहले Auth इंस्टेंस पर कोड. उदाहरण के लिए:

await FirebaseAuth.instance.setLanguageCode("fr");

आप Firebase कंसोल से भी पासवर्ड रीसेट के ईमेल भेज सकते हैं.

उपयोगकर्ता को हटाना

आपके पास delete() तरीके से किसी उपयोगकर्ता खाते को मिटाने का विकल्प होता है. उदाहरण के लिए:

await user?.delete();

आप चाहें, तो उपयोगकर्ता पेज पर Firebase कंसोल.

किसी उपयोगकर्ता की फिर से पुष्टि करें

सुरक्षा के लिए संवेदनशील कार्रवाइयां—जैसे खाता मिटाना, मुख्य ईमेल पता सेट करना और पासवर्ड बदलना—यह ज़रूरी है कि उपयोगकर्ता के पास हाल ही में साइन इन किया है. अगर इनमें से कोई भी कार्रवाई की जाती है और उपयोगकर्ता ने साइन इन किया हुआ है काफ़ी पहले हो गया, तो कार्रवाई पूरी नहीं हो पाती और कोड के साथ FirebaseAuthException दिखता है requires-recent-login. ऐसा होने पर, साइन इन करने के लिए नए क्रेडेंशियल हासिल करके, उपयोगकर्ता की फिर से पुष्टि करें उपयोगकर्ता से और reauthenticate को क्रेडेंशियल पास करना. उदाहरण के लिए:

// Prompt the user to re-provide their sign-in credentials.
// Then, use the credentials to reauthenticate:
await user?.reauthenticateWithCredential(credential);

उपयोगकर्ता खाते इंपोर्ट करें

आप फ़ाइल से उपयोगकर्ता खातों को अपने Firebase प्रोजेक्ट में इंपोर्ट कर सकते हैं. इसके लिए Firebase सीएलआई की auth:import कमांड. उदाहरण के लिए:

firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14