Flutter पर Firebase से पुष्टि करने की सुविधा का इस्तेमाल शुरू करना

अपने ऐप्लिकेशन को Firebase से कनेक्ट करना

अगर आपने अब तक Flutter के लिए Firebase SDK टूल इंस्टॉल और चालू नहीं किए हैं, तो ऐसा करें.

अपने ऐप्लिकेशन में Firebase Authentication जोड़ना

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

    flutter pub add firebase_auth
    
  2. अपडेट हो जाने के बाद, अपने Flutter ऐप्लिकेशन को फिर से बनाएं:

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

    import 'package:firebase_auth/firebase_auth.dart';
    

पुष्टि करने की सेवा देने वाली किसी कंपनी का इस्तेमाल करने के लिए, आपको Firebase कंसोल में जाकर उसे चालू करना होगा. Firebase Authentication सेक्शन में, साइन-इन करने के तरीके वाले पेज पर जाएं. यहां आपको ईमेल/पासवर्ड से साइन-इन करने की सुविधा और अपने ऐप्लिकेशन के लिए पहचान की पुष्टि करने वाली अन्य सुविधाएं चालू करनी होंगी.

(ज़रूरी नहीं) Firebase Local Emulator Suite की मदद से प्रोटोटाइप बनाना और उसकी जांच करना

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

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

पुष्टि करने वाले एम्युलेटर का इस्तेमाल करने के लिए, ये चरण पूरे करें:

  1. एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन की टेस्ट कॉन्फ़िगरेशन में कोड की एक लाइन जोड़ना.

  2. अपनी लोकल प्रोजेक्ट डायरेक्ट्री के रूट से, firebase emulators:start चलाएं.

  3. इंटरैक्टिव प्रोटोटाइपिंग के लिए, Local Emulator Suite के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना या बिना इंटरैक्टिव टेस्टिंग के लिए, Authentication Emulator के REST API का इस्तेमाल करना.

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

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

ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन को पुष्टि करने वाले एम्युलेटर से कनेक्ट करना लेख पढ़ें. ज़्यादा जानकारी के लिए, Local Emulator Suite के बारे में जानकारी देखें.

अब हम उपयोगकर्ताओं की पुष्टि करने के तरीके के बारे में बात करेंगे.

पुष्टि की मौजूदा स्थिति देखना

Firebase Auth, आपको कई तरीके और यूटिलिटी उपलब्ध कराता है. इनकी मदद से, अपने नए या मौजूदा Flutter ऐप्लिकेशन में सुरक्षित तरीके से पुष्टि करने की सुविधा को इंटिग्रेट किया जा सकता है. कई मामलों में, आपको अपने उपयोगकर्ता की पुष्टि करने की स्थिति के बारे में जानना होगा. जैसे, वे लॉग इन हैं या लॉग आउट.

Firebase Auth की मदद से, 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()

पुष्टि की स्थिति को बनाए रखना

सभी प्लैटफ़ॉर्म के लिए Firebase SDK टूल, यह पक्का करने के लिए तुरंत सहायता उपलब्ध कराते हैं कि ऐप्लिकेशन को फिर से चालू करने या पेज को फिर से लोड करने पर भी, उपयोगकर्ता की पुष्टि करने की स्थिति बनी रहे.

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

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

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

अगले चरण

पहचान और पुष्टि करने की सुविधा देने वाली सेवाओं की मदद से, उपयोगकर्ताओं को साइन इन और साइन अप करने की सुविधा देने के बारे में गाइड पढ़ें.