फ़्लटर पर फ़ायरबेस प्रमाणीकरण के साथ आरंभ करें

अपने ऐप को फायरबेस से कनेक्ट करें

यदि आपने पहले से ऐसा नहीं किया है तो फ़्लटर के लिए फ़ायरबेस एसडीके स्थापित करें और प्रारंभ करें

अपने ऐप में फायरबेस प्रमाणीकरण जोड़ें

  1. अपने फ़्लटर प्रोजेक्ट के रूट से, प्लगइन इंस्टॉल करने के लिए निम्न कमांड चलाएँ:

    flutter pub add firebase_auth
    
  2. एक बार पूरा होने पर, अपने फ़्लटर एप्लिकेशन का पुनर्निर्माण करें:

    flutter run
    
  3. अपने डार्ट कोड में प्लगइन आयात करें:

    import 'package:firebase_auth/firebase_auth.dart';
    

प्रमाणीकरण प्रदाता का उपयोग करने के लिए, आपको इसे फायरबेस कंसोल में सक्षम करना होगा। ईमेल/पासवर्ड साइन-इन और अपने ऐप के लिए इच्छित किसी भी अन्य पहचान प्रदाता को सक्षम करने के लिए फायरबेस प्रमाणीकरण अनुभाग में साइन-इन विधि पृष्ठ पर जाएं।

(वैकल्पिक) फायरबेस लोकल एमुलेटर सूट के साथ प्रोटोटाइप और परीक्षण

आपका ऐप उपयोगकर्ताओं को कैसे प्रमाणित करता है, इसके बारे में बात करने से पहले, आइए टूल का एक सेट पेश करें जिसका उपयोग आप प्रमाणीकरण कार्यक्षमता को प्रोटोटाइप और परीक्षण करने के लिए कर सकते हैं: फायरबेस लोकल एमुलेटर सूट। यदि आप प्रमाणीकरण तकनीकों और प्रदाताओं के बीच निर्णय ले रहे हैं, तो प्रमाणीकरण और फायरबेस सुरक्षा नियमों का उपयोग करके सार्वजनिक और निजी डेटा के साथ अलग-अलग डेटा मॉडल आज़माएं, या साइन-इन यूआई डिज़ाइन को प्रोटोटाइप करें, लाइव सेवाओं को तैनात किए बिना स्थानीय रूप से काम करने में सक्षम होना एक अच्छा विचार हो सकता है .

एक प्रमाणीकरण एमुलेटर स्थानीय एमुलेटर सूट का हिस्सा है, जो आपके ऐप को अनुकरणीय डेटाबेस सामग्री और कॉन्फ़िगरेशन के साथ-साथ वैकल्पिक रूप से आपके अनुकरणीय प्रोजेक्ट संसाधनों (फ़ंक्शन, अन्य डेटाबेस और सुरक्षा नियमों) के साथ इंटरैक्ट करने में सक्षम बनाता है।

प्रमाणीकरण एमुलेटर का उपयोग करने में बस कुछ ही चरण शामिल हैं:

  1. एम्यूलेटर से कनेक्ट करने के लिए अपने ऐप के परीक्षण कॉन्फ़िगरेशन में कोड की एक पंक्ति जोड़ना।

  2. आपकी स्थानीय प्रोजेक्ट निर्देशिका के मूल से, firebase emulators:start

  3. इंटरैक्टिव प्रोटोटाइपिंग के लिए स्थानीय एमुलेटर सूट यूआई, या गैर-इंटरैक्टिव परीक्षण के लिए प्रमाणीकरण एमुलेटर आरईएसटी एपीआई का उपयोग करना।

  4. एमुलेटर पता और पोर्ट निर्दिष्ट करने के लिए useAuthEmulator() को कॉल करें:

    Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    
    // Ideal time to initialize
    await FirebaseAuth.instance.useAuthEmulator('localhost', 9099);
    //...
    }
    

अपने ऐप को ऑथेंटिकेशन एमुलेटर से कनेक्ट करें पर एक विस्तृत गाइड उपलब्ध है। अधिक जानकारी के लिए, स्थानीय एमुलेटर सुइट परिचय देखें।

अब आइए जारी रखें कि उपयोगकर्ताओं को कैसे प्रमाणित किया जाए।

वर्तमान प्रमाणीकरण स्थिति की जाँच करें

फायरबेस ऑथ आपको अपने नए या मौजूदा फ़्लटर एप्लिकेशन में सुरक्षित प्रमाणीकरण को एकीकृत करने में सक्षम बनाने के लिए कई तरीके और उपयोगिताएँ प्रदान करता है। कई मामलों में, आपको अपने उपयोगकर्ता की प्रमाणीकरण स्थिति के बारे में जानना होगा, जैसे कि वे लॉग इन हैं या लॉग आउट हैं।

फायरबेस ऑथ आपको Stream माध्यम से इस स्थिति में वास्तविक समय में सदस्यता लेने में सक्षम बनाता है। एक बार कॉल करने के बाद, स्ट्रीम उपयोगकर्ता की वर्तमान प्रमाणीकरण स्थिति की तत्काल घटना प्रदान करती है, और फिर जब भी प्रमाणीकरण स्थिति बदलती है तो बाद की घटनाएं प्रदान करती है।

प्रमाणीकरण स्थिति परिवर्तनों को सुनने की तीन विधियाँ हैं:

authStateChanges()

इन परिवर्तनों की सदस्यता लेने के लिए, अपने FirebaseAuth उदाहरण पर authStateChanges() विधि को कॉल करें:

FirebaseAuth.instance
  .authStateChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

निम्नलिखित घटित होने पर ईवेंट सक्रिय हो जाते हैं:

  • श्रोता के पंजीकृत होने के ठीक बाद।
  • जब कोई उपयोगकर्ता साइन इन होता है.
  • जब वर्तमान उपयोगकर्ता साइन आउट हो जाता है.

idTokenChanges()

इन परिवर्तनों की सदस्यता लेने के लिए, अपने FirebaseAuth उदाहरण पर idTokenChanges() विधि को कॉल करें:

FirebaseAuth.instance
  .idTokenChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

निम्नलिखित घटित होने पर ईवेंट सक्रिय हो जाते हैं:

  • श्रोता के पंजीकृत होने के ठीक बाद।
  • जब कोई उपयोगकर्ता साइन इन होता है.
  • जब वर्तमान उपयोगकर्ता साइन आउट हो जाता है.
  • जब वर्तमान उपयोगकर्ता के टोकन में कोई परिवर्तन होता है।

userChanges()

इन परिवर्तनों की सदस्यता लेने के लिए, अपने FirebaseAuth उदाहरण पर userChanges() विधि को कॉल करें:

FirebaseAuth.instance
  .userChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

निम्नलिखित घटित होने पर ईवेंट सक्रिय हो जाते हैं:

  • श्रोता के पंजीकृत होने के ठीक बाद।
  • जब कोई उपयोगकर्ता साइन इन होता है.
  • जब वर्तमान उपयोगकर्ता साइन आउट हो जाता है.
  • जब वर्तमान उपयोगकर्ता के टोकन में कोई परिवर्तन होता है.
  • जब FirebaseAuth.instance.currentUser द्वारा प्रदान की गई निम्नलिखित विधियों को कॉल किया जाता है:
    • reload()
    • unlink()
    • updateEmail()
    • updatePassword()
    • updatePhoneNumber()
    • updateProfile()

सतत प्रमाणीकरण स्थिति

सभी प्लेटफ़ॉर्म के लिए फ़ायरबेस एसडीके यह सुनिश्चित करने के लिए आउट-ऑफ-द-बॉक्स समर्थन प्रदान करते हैं कि आपके उपयोगकर्ता की प्रमाणीकरण स्थिति ऐप पुनरारंभ या पेज पुनः लोड होने पर बनी रहती है।

एंड्रॉइड और आईओएस जैसे देशी प्लेटफ़ॉर्म पर, यह व्यवहार कॉन्फ़िगर करने योग्य नहीं है और उपयोगकर्ता की प्रमाणीकरण स्थिति ऐप पुनरारंभ होने के बीच डिवाइस पर बनी रहेगी। उपयोगकर्ता डिवाइस सेटिंग्स का उपयोग करके ऐप्स के कैश्ड डेटा को साफ़ कर सकता है, जो संग्रहीत किसी भी मौजूदा स्थिति को मिटा देगा।

वेब प्लेटफ़ॉर्म पर, उपयोगकर्ता की प्रमाणीकरण स्थिति IndexedDB में संग्रहीत होती है। आप Persistence.LOCAL का उपयोग करके स्थानीय संग्रहण में डेटा संग्रहीत करने के लिए दृढ़ता को बदल सकते हैं। यदि आवश्यक हो, तो आप इस डिफ़ॉल्ट व्यवहार को केवल वर्तमान सत्र के लिए प्रमाणीकरण स्थिति को जारी रखने के लिए बदल सकते हैं, या बिल्कुल भी नहीं। इन सेटिंग्स को कॉन्फ़िगर करने के लिए, निम्न विधि को कॉल करें FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.LOCAL); . आप अभी भी setPersistence(Persistence.NONE) का उपयोग करके प्रत्येक प्रामाणिक उदाहरण के लिए दृढ़ता को अपडेट कर सकते हैं।

// Disable persistence on web platforms. Must be called on initialization:
final auth = FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.NONE);
// To change it after initialization, use `setPersistence()`:
await auth.setPersistence(Persistence.LOCAL);

अगले कदम

समर्थित पहचान और प्रमाणीकरण सेवाओं के साथ उपयोगकर्ताओं को साइन इन करने और साइन अप करने के बारे में मार्गदर्शिकाएँ देखें।