अपने ऐप को फायरबेस से कनेक्ट करें
यदि आपने पहले से ऐसा नहीं किया है तो फ़्लटर के लिए फ़ायरबेस एसडीके स्थापित करें और प्रारंभ करें ।
अपने ऐप में फायरबेस प्रमाणीकरण जोड़ें
अपने फ़्लटर प्रोजेक्ट के रूट से, प्लगइन इंस्टॉल करने के लिए निम्न कमांड चलाएँ:
flutter pub add firebase_auth
एक बार पूरा होने पर, अपने फ़्लटर एप्लिकेशन का पुनर्निर्माण करें:
flutter run
अपने डार्ट कोड में प्लगइन आयात करें:
import 'package:firebase_auth/firebase_auth.dart';
प्रमाणीकरण प्रदाता का उपयोग करने के लिए, आपको इसे फायरबेस कंसोल में सक्षम करना होगा। ईमेल/पासवर्ड साइन-इन और अपने ऐप के लिए इच्छित किसी भी अन्य पहचान प्रदाता को सक्षम करने के लिए फायरबेस प्रमाणीकरण अनुभाग में साइन-इन विधि पृष्ठ पर जाएं।
(वैकल्पिक) फायरबेस लोकल एमुलेटर सूट के साथ प्रोटोटाइप और परीक्षण
आपका ऐप उपयोगकर्ताओं को कैसे प्रमाणित करता है, इसके बारे में बात करने से पहले, आइए टूल का एक सेट पेश करें जिसका उपयोग आप प्रमाणीकरण कार्यक्षमता को प्रोटोटाइप और परीक्षण करने के लिए कर सकते हैं: फायरबेस लोकल एमुलेटर सूट। यदि आप प्रमाणीकरण तकनीकों और प्रदाताओं के बीच निर्णय ले रहे हैं, तो प्रमाणीकरण और फायरबेस सुरक्षा नियमों का उपयोग करके सार्वजनिक और निजी डेटा के साथ अलग-अलग डेटा मॉडल आज़माएं, या साइन-इन यूआई डिज़ाइन को प्रोटोटाइप करें, लाइव सेवाओं को तैनात किए बिना स्थानीय रूप से काम करने में सक्षम होना एक अच्छा विचार हो सकता है .
एक प्रमाणीकरण एमुलेटर स्थानीय एमुलेटर सूट का हिस्सा है, जो आपके ऐप को अनुकरणीय डेटाबेस सामग्री और कॉन्फ़िगरेशन के साथ-साथ वैकल्पिक रूप से आपके अनुकरणीय प्रोजेक्ट संसाधनों (फ़ंक्शन, अन्य डेटाबेस और सुरक्षा नियमों) के साथ इंटरैक्ट करने में सक्षम बनाता है।
प्रमाणीकरण एमुलेटर का उपयोग करने में बस कुछ ही चरण शामिल हैं:
एम्यूलेटर से कनेक्ट करने के लिए अपने ऐप के परीक्षण कॉन्फ़िगरेशन में कोड की एक पंक्ति जोड़ना।
आपकी स्थानीय प्रोजेक्ट निर्देशिका के मूल से,
firebase emulators:start
।इंटरैक्टिव प्रोटोटाइपिंग के लिए स्थानीय एमुलेटर सूट यूआई, या गैर-इंटरैक्टिव परीक्षण के लिए प्रमाणीकरण एमुलेटर आरईएसटी एपीआई का उपयोग करना।
एमुलेटर पता और पोर्ट निर्दिष्ट करने के लिए
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!');
}
});
निम्नलिखित घटित होने पर ईवेंट सक्रिय हो जाते हैं:
- श्रोता के पंजीकृत होने के ठीक बाद।
- जब कोई उपयोगकर्ता साइन इन होता है.
- जब वर्तमान उपयोगकर्ता साइन आउट हो जाता है.
- जब वर्तमान उपयोगकर्ता के टोकन में कोई परिवर्तन होता है।
- कस्टम दावों को संशोधित करने के बाद उपयोगकर्ता साइन इन करता है या पुनः प्रमाणित करता है। परिणामस्वरूप जारी किए गए आईडी टोकन में नवीनतम दावे शामिल होंगे।
- पुराने टोकन की समय सीमा समाप्त होने के बाद मौजूदा उपयोगकर्ता सत्र को अपना आईडी टोकन ताज़ा हो जाता है।
-
FirebaseAuth.instance.currentUser.getIdTokenResult(true)
पर कॉल करके एक आईडी टोकन को बलपूर्वक ताज़ा किया जाता है।
अधिक जानकारी के लिए, ग्राहक के लिए कस्टम दावों का प्रचार करना देखें
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()
-
यदि आप फायरबेस एडमिन एसडीके या फायरबेस कंसोल के साथ User
अक्षम या हटाते हैं तो idTokenChanges()
, userChanges()
() और authStateChanges()
भी सक्रिय नहीं होंगे। आपको FirebaseAuth.instance.currentUser.reload()
का उपयोग करके पुनः लोड करने के लिए मजबूर करना होगा, जो user-disabled
या user-not-found
अपवाद का कारण बनेगा जिसे आप अपने ऐप कोड में पकड़ और संभाल सकते हैं।
सतत प्रमाणीकरण स्थिति
सभी प्लेटफ़ॉर्म के लिए फ़ायरबेस एसडीके यह सुनिश्चित करने के लिए आउट-ऑफ-द-बॉक्स समर्थन प्रदान करते हैं कि आपके उपयोगकर्ता की प्रमाणीकरण स्थिति ऐप पुनरारंभ या पेज पुनः लोड होने पर बनी रहती है।
एंड्रॉइड और आईओएस जैसे देशी प्लेटफ़ॉर्म पर, यह व्यवहार कॉन्फ़िगर करने योग्य नहीं है और उपयोगकर्ता की प्रमाणीकरण स्थिति ऐप पुनरारंभ होने के बीच डिवाइस पर बनी रहेगी। उपयोगकर्ता डिवाइस सेटिंग्स का उपयोग करके ऐप्स के कैश्ड डेटा को साफ़ कर सकता है, जो संग्रहीत किसी भी मौजूदा स्थिति को मिटा देगा।
वेब प्लेटफ़ॉर्म पर, उपयोगकर्ता की प्रमाणीकरण स्थिति 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);
अगले कदम
समर्थित पहचान और प्रमाणीकरण सेवाओं के साथ उपयोगकर्ताओं को साइन इन करने और साइन अप करने के बारे में मार्गदर्शिकाएँ देखें।