अपने ऐप्लिकेशन को Firebase से कनेक्ट करें
अगर आपने अभी तक यह काम नहीं किया है, तो Flutter के लिए Firebase SDK टूल को इंस्टॉल करें और उन्हें शुरू करें तो.
अपने ऐप्लिकेशन में Firebase की पुष्टि करने की सुविधा जोड़ें
अपने Flutter प्रोजेक्ट के रूट से, इंस्टॉल करने के लिए नीचे दिया गया कमांड चलाएं प्लगिन:
flutter pub add firebase_auth
यह प्रोसेस पूरी होने के बाद, अपना Flutter ऐप्लिकेशन फिर से बनाएं:
flutter run
अपने Dart कोड में प्लग इन इंपोर्ट करें:
import 'package:firebase_auth/firebase_auth.dart';
पुष्टि करने की सेवा देने वाली किसी कंपनी का इस्तेमाल करने के लिए, आपको इसे Firebase कंसोल में चालू करना होगा. चालू करने के लिए, Firebase से पुष्टि करने वाले सेक्शन में 'साइन इन करने का तरीका' पेज पर जाएं ईमेल/पासवर्ड से साइन-इन और अपने ऐप्लिकेशन के लिए, पहचान देने वाली ऐसी अन्य कंपनियां जिन्हें आपको जोड़ना है.
(ज़रूरी नहीं) Firebase लोकल एम्युलेटर सुइट की मदद से प्रोटोटाइप बनाएं और टेस्ट करें
आपका ऐप्लिकेशन लोगों की पुष्टि कैसे करता है, इस बारे में बात करने से पहले, चलिए उन तरीकों के बारे में जानते हैं ऐसे टूल जिनका इस्तेमाल पुष्टि करने की सुविधाओं के प्रोटोटाइप बनाने और उनकी जांच करने के लिए किया जा सकता है: Firebase लोकल एम्युलेटर सुइट. अगर आपको पुष्टि करने की तकनीकों में से कोई एक तरीका चुनना है सार्वजनिक और निजी डेटा के साथ अलग-अलग डेटा मॉडल को आज़माने के लिए, पुष्टि करने और Firebase के सुरक्षा नियमों का इस्तेमाल करके या साइन-इन यूज़र इंटरफ़ेस (यूआई) डिज़ाइन का प्रोटोटाइप बनाकर, लाइव सेवाओं को डिप्लॉय किए बिना, स्थानीय स्तर पर काम करना भी एक अच्छा आइडिया हो सकता है.
पुष्टि करने वाला एम्युलेटर, Local Emulator Suite का हिस्सा है. यह आपके ऐप्लिकेशन को एम्युलेट किए गए डेटाबेस कॉन्टेंट और कॉन्फ़िगरेशन के साथ इंटरैक्ट करने की अनुमति देता है, जैसे कि विकल्प के तौर पर, आपके एम्युलेट किए गए प्रोजेक्ट रिसोर्स (फ़ंक्शन, अन्य डेटाबेस, और सुरक्षा के नियम शामिल हैं).
पुष्टि करने वाले एम्युलेटर का इस्तेमाल करने के लिए, आपको कुछ चरणों को पूरा करना होगा:
एम्युलेटर से कनेक्ट करने के लिए, अपने ऐप्लिकेशन के टेस्ट कॉन्फ़िगरेशन में कोड की लाइन जोड़ना.
आपकी लोकल प्रोजेक्ट डायरेक्ट्री के रूट से,
firebase emulators:start
पर चल रहा है.इंटरैक्टिव प्रोटोटाइपिंग के लिए, Local Emulator Suite यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना या नॉन-इंटरैक्टिव टेस्टिंग के लिए, पुष्टि करने वाला एम्युलेटर REST API.
एम्युलेटर का पता और पोर्ट की जानकारी देने के लिए,
useAuthEmulator()
पर कॉल करें:Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); // Ideal time to initialize await FirebaseAuth.instance.useAuthEmulator('localhost', 9099); //... }
इस बारे में ज़्यादा जानकारी देने वाली गाइड, अपने ऐप्लिकेशन को पुष्टि करने वाले एम्युलेटर से कनेक्ट करें पर उपलब्ध है. ज़्यादा जानकारी के लिए, Local Emulator Suite का परिचय देखें.
आइए, अब उपयोगकर्ताओं की पुष्टि करने के तरीके के बारे में बात करते हैं.
अनुमति की मौजूदा स्थिति देखें
Firebase की पुष्टि करने की सुविधा में अलग-अलग तरीके और काम की सुविधाएं मिलती हैं, ताकि आप अपनी वेबसाइट के वर्शन को आपके नए या मौजूदा Flutter ऐप्लिकेशन में सुरक्षित तरीके से पुष्टि करने की सुविधा मिलेगी. कई मामलों में, आपको अपने उपयोगकर्ता की पुष्टि करने की स्थिति के बारे में जानना होगा, जैसे कि उसने लॉग इन किया है या लॉग आउट किया है.
Firebase पुष्टि की मदद से, इस स्थिति की रीयल टाइम में सदस्यता ली जा सकती है. इसके लिए,
Stream
.
कॉल किए जाने पर, स्ट्रीम उपयोगकर्ता के मौजूदा हाल की गतिविधि की जानकारी देती है
पुष्टि करने की प्रोसेस चालू करता है और इसके बाद जब भी मुमकिन हो, तब बाद के इवेंट उपलब्ध कराता है
पुष्टि करने की स्थिति बदल जाती है.
पुष्टि करने की स्थिति में हुए बदलावों को सुनने के तीन तरीके हैं:
authStateChanges()
इन बदलावों की सदस्यता लेने के लिए, अपनेauthStateChanges()
FirebaseAuth
इंस्टेंस:
FirebaseAuth.instance
.authStateChanges()
.listen((User? user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
इवेंट इन स्थितियों में ट्रिगर होते हैं:
- लिसनर के रजिस्टर होने के तुरंत बाद.
- जब किसी उपयोगकर्ता ने साइन इन किया हुआ हो.
- जब मौजूदा उपयोगकर्ता साइन आउट हो.
idTokenChanges()
इन बदलावों की सदस्यता लेने के लिए, अपनेidTokenChanges()
FirebaseAuth
इंस्टेंस:
FirebaseAuth.instance
.idTokenChanges()
.listen((User? user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
इवेंट इन स्थितियों में ट्रिगर होते हैं:
- लिसनर के रजिस्टर होने के तुरंत बाद.
- जब किसी उपयोगकर्ता ने साइन इन किया हुआ हो.
- जब मौजूदा उपयोगकर्ता साइन आउट हो.
- जब मौजूदा उपयोगकर्ता के टोकन में कोई बदलाव होता है.
userChanges()
इन बदलावों की सदस्यता लेने के लिए, अपनेuserChanges()
FirebaseAuth
इंस्टेंस:
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 टूल एक बेहतरीन सहायता देते हैं. इससे यह पक्का किया जा सकता है कि यह पक्का करने के लिए कि आपके उपयोगकर्ता की पुष्टि करने की स्थिति, ऐप्लिकेशन के रीस्टार्ट होने पर या पेज पर बनी रहती है फिर से लोड होते हैं.
नेटिव प्लैटफ़ॉर्म पर iOS, इस व्यवहार को कॉन्फ़िगर नहीं किया जा सकता और उपयोगकर्ता की पुष्टि करने की स्थिति, किसी दूसरे ऐप्लिकेशन के डिवाइस में ही बनी रहेगी रीस्टार्ट हो जाता है. उपयोगकर्ता, डिवाइस की सेटिंग का इस्तेमाल करके ऐप्लिकेशन में कैश मेमोरी का डेटा मिटा सकते हैं, इससे, सेव की गई किसी भी मौजूदा स्थिति को वाइप कर दिया जाएगा.
वेब प्लैटफ़ॉर्म पर, उपयोगकर्ता की पुष्टि करने की स्थिति यहां सेव की जाती है
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);
अगले चरण
साइन इन और साइन अप करने के लिए, पहचान करने और पुष्टि करने से जुड़ी सेवाओं के लिए उपलब्ध है.