Apple प्लैटफ़ॉर्म पर Facebook लॉगिन का इस्तेमाल करके पुष्टि करें (original) (raw)
Authentication
- शुरुआती जानकारी
- मैं कहां से प्रारंभ करूं?
- Firebase प्रोजेक्ट में मौजूद उपयोगकर्ता
- iOS+
* पहले से बने यूज़र इंटरफ़ेस (यूआई) से साइन इन करें
* शुरू करें
* उपयोगकर्ताओं को प्रबंधित करें
* पासवर्ड की पुष्टि
* ईमेल लिंक की पुष्टि करें
* ईमेल लिंक माइग्रेशन
* Google से साइन इन करें
* Facebook में लॉगिन करें
* Apple से साइन इन करें
* Twitter पर लॉगिन करें
* GitHub
* Microsoft
* Yahoo
* गेम सेंटर में साइन इन करें
* फ़ोन नंबर
* OpenID कनेक्ट
* कस्टम पुष्टि सिस्टम का इस्तेमाल करें
* अनाम प्रमाणीकरण
* शेयर किए गए Keychain के साथ, क्रॉस-ऐप्लिकेशन की पुष्टि करने की सुविधा चालू करना
* पुष्टि करने वाली एक से ज़्यादा कंपनियों को लिंक करें
* मैसेज (एसएमएस) की बहु-स्तरीय पुष्टि
* टीओटीपी के लिए बहु-स्तरीय पुष्टि
* ईमेल कार्रवाइयों में पास होने की स्थिति
* गड़बड़ियां ठीक करना - Android
* पहले से बने यूज़र इंटरफ़ेस (यूआई) से साइन इन करें
* शुरू करें
* उपयोगकर्ताओं को प्रबंधित करें
* पासवर्ड की पुष्टि
* ईमेल लिंक की पुष्टि करें
* ईमेल लिंक माइग्रेशन
* Google से साइन इन करें
* Facebook में लॉगिन करें
* Apple से साइन इन करें
* Twitter
* GitHub
* Microsoft
* Yahoo
* Play Games में साइन इन करें
* फ़ोन नंबर
* OpenID कनेक्ट
* कस्टम पुष्टि सिस्टम का इस्तेमाल करें
* अनाम प्रमाणीकरण
* मैसेज (एसएमएस) की बहु-स्तरीय पुष्टि
* टीओटीपी के लिए बहु-स्तरीय पुष्टि
* पुष्टि करने वाली एक से ज़्यादा कंपनियों को लिंक करें
* ईमेल कार्रवाइयों में पास होने की स्थिति - Flutter
* शुरू करें
* उपयोगकर्ताओं को प्रबंधित करें
* पासवर्ड की पुष्टि
* ईमेल लिंक की पुष्टि करें
* संघीय पहचान और सोशल मीडिया ऐप्लिकेशन
* फ़ोन नंबर
* कस्टम पुष्टि सिस्टम का इस्तेमाल करें
* अनाम प्रमाणीकरण
* बहु-स्तरीय पुष्टि (MFA)
* पुष्टि करने वाली एक से ज़्यादा कंपनियों को लिंक करें
* ईमेल कार्रवाइयों में पास होने की स्थिति
* गड़बड़ियां ठीक करना - Web
* पहले से बने यूज़र इंटरफ़ेस (यूआई) से साइन इन करें
* शुरू करें
* उपयोगकर्ताओं को प्रबंधित करें
* पासवर्ड की पुष्टि
* ईमेल लिंक की पुष्टि करें
* Google से साइन इन करें
* Facebook में लॉगिन करें
* Apple से साइन इन करें
* Twitter
* GitHub
* Microsoft
* Yahoo
* फ़ोन नंबर
* OpenID कनेक्ट
* एसएएमएल
* कस्टम पुष्टि सिस्टम का इस्तेमाल करें
* अनाम प्रमाणीकरण
* मैसेज (एसएमएस) की बहु-स्तरीय पुष्टि
* टीओटीपी के लिए बहु-स्तरीय पुष्टि
* पुष्टि करने वाली एक से ज़्यादा कंपनियों को लिंक करें
* डिपेंडेंसी को पसंद के मुताबिक बनाएं
* Cordava के लिए OAuth साइन-इन
* Chrome एक्सटेंशन से साइन इन करने वाले उपयोगकर्ता
* अनुमति की स्थिति परसिस्टेंस
* ईमेल कार्रवाइयों में पास होने की स्थिति
* सर्विस वर्कर सेशन
* साइन इनविद रीडायरेक्ट फ़्लो के लिए सबसे सही तरीके - C++
* शुरू करें
* उपयोगकर्ताओं को प्रबंधित करें
* पासवर्ड की पुष्टि
* Google से साइन इन करें
* Play Games में साइन इन करें
* GitHub
* Facebook में लॉगिन करें
* Apple से साइन इन करें
* Twitter पर लॉगिन करें
* Microsoft
* Yahoo
* फ़ोन नंबर
* कस्टम पुष्टि सिस्टम का इस्तेमाल करें
* अनाम प्रमाणीकरण
* पुष्टि करने वाली एक से ज़्यादा कंपनियों को लिंक करें - Unity
* शुरू करें
* उपयोगकर्ताओं को प्रबंधित करें
* पासवर्ड की पुष्टि
* Google से साइन इन करें
* Play Games में साइन इन करें
* GitHub से पुष्टि करें
* Facebook में लॉगिन करें
* Apple से साइन इन करें
* Twitter पर लॉगिन करें
* Microsoft
* Yahoo
* फ़ोन नंबर
* कस्टम पुष्टि सिस्टम का इस्तेमाल करें
* अनाम प्रमाणीकरण
* पुष्टि करने वाली एक से ज़्यादा कंपनियों को लिंक करें - व्यवस्थापक
* शुरुआती जानकारी
* उपयोगकर्ताओं को प्रबंधित करें
* उपयोगकर्ताओं को इंपोर्ट करें
* कस्टम टोकन बनाएं
* आईडी टोकन की पुष्टि करें
* बहु-स्तरीय उपयोगकर्ताओं को प्रबंधित करें
* उपयोगकर्ता सेशन प्रबंधित करें
* सेशन कुकी मैनेज करें
* कस्टम दावों की मदद से ऐक्सेस कंट्रोल करना
* ईमेल कार्रवाई लिंक जनरेट करना
* गड़बड़ियां - प्रोग्राम के हिसाब से OAuth आइडेंटिटी प्रोवाइडर कॉन्फ़िगर करना
- ईमेल कार्रवाई हैंडलर को पसंद के मुताबिक बनाएं
- Cloud Functions की मदद से बढ़ाएं
- ब्लॉक करने वाले फ़ंक्शन की मदद से बढ़ाएं
- ईमेल कस्टम डोमेन
- केस स्टडी
- इस्तेमाल करने की सीमा
App Check
- शुरुआती जानकारी
- शुरू करना
- डीबग और टेस्ट करने वाली कंपनियां
* iOS+ में डीबग प्रोवाइडर का इस्तेमाल करें
* Android में डीबग प्रोवाइडर का इस्तेमाल करना
* वेब ऐप्लिकेशन में डीबग की सेवा देने वाली कंपनी का इस्तेमाल करना
* Flutter की मदद से डीबग की सेवा देने वाली कंपनी का इस्तेमाल करना
* Unity ऐप्लिकेशन में डीबग की सेवा देने वाली कंपनी का इस्तेमाल करना
* C++ के साथ डीबग प्रोवाइडर का इस्तेमाल करें - अनुरोध की मेट्रिक पर नज़र रखना
- Google की स्टैंडर्ड सेवाएं
- Cloud Functions for Firebase
- नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) चालू करें
- Google की स्टैंडर्ड सेवाएं
- Cloud Functions for Firebase
- कस्टम रिसॉर्स को सुरक्षित रखना
- बैकएंड पर टोकन की पुष्टि करें
Data Connect
- शुरुआती जानकारी
- कीमत तय करना और बिलिंग
- शुरू करना
- क्विकस्टार्ट
- React
- Flutter
- डिज़ाइन स्कीमा और कार्रवाइयां
- Data Connect स्कीमा डिज़ाइन करना
- Data Connect क्वेरी लागू करना
- Data Connect म्यूटेशन लागू करना
- अनुमति देकर, सुरक्षित तरीके से काम करें
- Data Connect की मदद से डेटा डेवलप करना और उसकी जांच करना
- टेस्ट डेटा डालना और एक साथ कई कार्रवाइयां करना
- वेब SDK टूल जनरेट करें
- Android SDK टूल जनरेट करें
- iOS SDK टूल जनरेट करें
- Flutter SDK टूल जनरेट करें
- एडमिन एसडीके जनरेट करना
- सीआई/सीडी के लिए, Data Connect एम्युलेटर का इस्तेमाल करें
- Data Connect प्रोजेक्ट मैनेज करना
- स्कीमा और कनेक्टर मैनेज करना
- सेवाएं और डेटाबेस मैनेज करें
- Firebase Admin SDK टूल की मदद से, खास सुविधाओं वाले ऑपरेशन चलाना
- Data Connect से जुड़े समाधान
- स्कीमा, क्वेरी, और म्यूटेशन के लिए एआई की मदद लेना
- Cloud Functions की मदद से बढ़ाएं
- सदिश समानता खोजें
- पूरे टेक्स्ट में खोज करना
- GraphQL भाषा की रेफ़रंस गाइड
- निर्देशों का रेफ़रंस
- क्वेरी का रेफ़रंस
- म्यूटेशन का रेफ़रंस
- ऑब्जेक्ट का रेफ़रंस
- इनपुट ऑब्जेक्ट का रेफ़रंस
- स्केलर रेफ़रंस
- Enums रेफ़रंस
- रेफ़रंस के लिए अन्य गाइड
- सीएलआई रेफ़रंस
- Data Connect कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस
- Data Connect प्रोजेक्ट के लिए IAM कॉन्फ़िगरेशन
- कॉमन एक्सप्रेशन लैंग्वेज (सीईएल) रेफ़रंस
- क्लाउड ऑडिट लॉगिंग के बारे में जानकारी
Cloud Firestore
- शुरुआती जानकारी
- Cloud Firestore के वर्शन
- स्टैंडर्ड एडिशन
- शुरू करना
- डेटाबेस मैनेज करना
- डेटा जोड़ें और मैनेज करें
* स्ट्रक्चर डेटा
* डेटा जोड़ें
* लेन-देन और बैच में लिखी गई किताबें
* लेन-देन में डेटा से जुड़ा विवाद
* डेटा मिटाना
* Firebase कंसोल के साथ Cloud Firestore को मैनेज करना
* डेटा एक्सपोर्ट और इंपोर्ट करना
* टाइम-टू-लाइव की नीतियों की मदद से, डेटा के रखरखाव को मैनेज करना
* Dataflow की मदद से, एक साथ कई डेटा प्रोसेस करें
* प्रोजेक्ट के बीच डेटा ट्रांसफ़र करना
* एक साथ कई फ़ोटो मिटाना - समाधान
* खास जानकारी
* Firebase एक्सटेंशन का इस्तेमाल करने वाले समाधान
* BigQuery के साथ इंटिग्रेट करना
* एआई की मदद से काम करने वाला चैटबॉट लागू करें
* टेक्स्ट को बेहतर तरीके से मैनेज करना
* मीडिया की वैल्यू बढ़ाएं
* निर्देशों के हिसाब से लागू करने की सुविधा का इस्तेमाल करने वाले समाधान
* जनरेटिव एआई की सुविधाएं डेवलप करना
* Firestore Lite वेब SDK
* लिखने के समय का एग्रीगेशन
* डिस्ट्रिब्यूट किए गए काउंटर
* पूरे टेक्स्ट की मदद से खोजें
* मौजूदगी बनाएं
* उपयोगकर्ताओं और ग्रुप के लिए डेटा का सुरक्षित ऐक्सेस
* कॉल करने लायक Cloud फ़ंक्शन से डेटा मिटाना
* डेटा एक्सपोर्ट शेड्यूल करना
* शेयर किए गए टाइमस्टैंप
* भौगोलिक क्वेरी
* सीडीएन से बंडल किया गया Firestore कॉन्टेंट दिखाएं - इस्तेमाल, सीमाएं, और कीमत
* इस्तेमाल और सीमाएं
* इस्तेमाल को मॉनिटर करें
* क्वेरी की परफ़ॉर्मेंस के बारे में बताएं
* क्वेरी की जानकारी देने वाली रिपोर्ट का रेफ़रंस
* Cloud Firestore की बिलिंग को समझना
* तय इस्तेमाल पर मिलने वाली छूट
* Cloud Firestore की लागत का उदाहरण
* स्टोरेज के साइज़ का हिसाब लगाने के बारे में जानकारी - Enterprise वर्शन
- कॉन्टेंट बनाना
* व्यवहार में अंतर
* TTL की नीतियों की मदद से, डेटा का रखरखाव मैनेज करें
* बड़े पैमाने पर पढ़े और लिखे गए कॉन्टेंट को समझना
* Firebase के लिए Cloud Functions की मदद से बढ़ाया जा सकता है (2nd gen) - सुरक्षित करें और पुनर्स्थापित करें
Realtime Database
- शुरुआती जानकारी
- कोई डेटाबेस चुनें
- iOS+
* शुरू करें
* स्ट्रक्चर डेटा
* डेटा पढ़ें और लिखें
* डेटा की सूचियों के साथ काम करना
* ऑफ़लाइन क्षमताएं चालू करें - Android
* शुरू करें
* स्ट्रक्चर डेटा
* डेटा पढ़ें और लिखें
* डेटा की सूचियों के साथ काम करना
* ऑफ़लाइन क्षमताएं चालू करें - Web
* शुरू करें
* स्ट्रक्चर डेटा
* डेटा पढ़ें और लिखें
* डेटा की सूचियों के साथ काम करना
* ऑफ़लाइन क्षमताएं चालू करें - Flutter
* शुरू करें
* स्ट्रक्चर डेटा
* डेटा पढ़ें और लिखें
* डेटा की सूचियों के साथ काम करना
* ऑफ़लाइन क्षमताएं चालू करें - REST
* शुरू करें
* स्ट्रक्चर डेटा
* डेटा सेव करें
* डेटा वापस पाएं
* REST के अनुरोधों की पुष्टि करें - C++
* शुरू करें
* स्ट्रक्चर डेटा
* डेटा सेव करें
* डेटा वापस पाएं - इस्तेमाल और परफ़ॉर्मेंस
* बिलिंग के बारे में जानकारी
* रीयलटाइम डेटाबेस की सीमाएं
* डेटाबेस के इस्तेमाल की निगरानी करें
* डेटाबेस की परफ़ॉर्मेंस पर नज़र रखें
* एक से ज़्यादा डेटाबेस के साथ स्केल करें
* अपने डेटाबेस की प्रोफ़ाइल बनाएं
* डेटाबेस की परफ़ॉर्मेंस ऑप्टिमाइज़ करें - स्थान
- अपने-आप बैकअप लिए जाने की सुविधा
- कंसोल में डेटा देखना और उसमें बदलाव करना
- Cloud Functions की मदद से बढ़ाएं
- वीडियो सीरीज़: Firebase for SQL Developers
Storage
- शुरुआती जानकारी
- iOS+
* शुरू करें
* रेफ़रंस बनाना
* फ़ाइलें अपलोड करें
* फ़ाइलें डाउनलोड करें
* फ़ाइल मेटाडेटा का इस्तेमाल करें
* फ़ाइलें मिटाएं
* फ़ाइलों की सूची बनाएं
* गड़बड़ियां ठीक करना - Android
* शुरू करें
* रेफ़रंस बनाना
* फ़ाइलें अपलोड करें
* फ़ाइलें डाउनलोड करें
* फ़ाइल मेटाडेटा का इस्तेमाल करें
* फ़ाइलें मिटाएं
* फ़ाइलों की सूची बनाएं
* गड़बड़ियां ठीक करना - Web
* शुरू करें
* रेफ़रंस बनाना
* फ़ाइलें अपलोड करें
* फ़ाइलें डाउनलोड करें
* फ़ाइल मेटाडेटा का इस्तेमाल करें
* फ़ाइलें मिटाएं
* फ़ाइलों की सूची बनाएं
* गड़बड़ियां ठीक करना - Flutter
* शुरू करें
* रेफ़रंस बनाना
* फ़ाइलें अपलोड करें
* फ़ाइलें डाउनलोड करें
* फ़ाइल मेटाडेटा का इस्तेमाल करें
* फ़ाइलें मिटाएं
* फ़ाइलों की सूची बनाएं
* गड़बड़ियां ठीक करना - C++
* शुरू करें
* रेफ़रंस बनाना
* फ़ाइलें अपलोड करें
* फ़ाइलें डाउनलोड करें
* फ़ाइल मेटाडेटा का इस्तेमाल करें
* फ़ाइलें मिटाएं
* गड़बड़ियां ठीक करना - Unity
* शुरू करें
* रेफ़रंस बनाना
* फ़ाइलें अपलोड करें
* फ़ाइलें डाउनलोड करें
* फ़ाइल मेटाडेटा का इस्तेमाल करें
* फ़ाइलें मिटाएं
* गड़बड़ियां ठीक करना - स्थान
- गतिविधि को मॉनिटर करना
- कंसोल में स्टोर की गई फ़ाइलें मैनेज करना
- Cloud Functions की मदद से बढ़ाएं
- Google Cloud के साथ इंटिग्रेट करना
- कीमत के प्लान में हुए बदलावों के बारे में अक्सर पूछे जाने वाले सवाल
App Hosting
- शुरुआती जानकारी
- डिस्कवर
- ऐप्लिकेशन होस्टिंग की सुविधा कैसे काम करती है
- App Hosting की बिल्ड प्रोसेस
- ऐप्लिकेशन होस्टिंग की लागत
- मिलते-जुलते सर्वरलेस समाधान
- शुरू करना
- बेसिक ऐप्लिकेशन डिप्लॉय करना
- कई एनवायरमेंट डिप्लॉय करें
- मोनो रिपॉज़िटरी ऐप्लिकेशन डिप्लॉय करना
- डिप्लॉय करने के अन्य तरीके
- कॉन्टेंट बनाना
- फ़्रेमवर्क और टूल
- बैकएंड कॉन्फ़िगर और मैनेज करना
- कस्टम डोमेन कनेक्ट करें
- Firebase SDK टूल इंटिग्रेट करना
- एपीआई का संदर्भ
- ऐप्लिकेशन का कॉन्टेंट कैश करना
- मॉनिटर, लॉग, और डीबग
- रोल आउट और रिलीज़ मैनेज करना
- अपने ऐप्लिकेशन को स्थानीय तौर पर टेस्ट करना
- रास्तों को मॉनिटर करना
- लॉग लिखें और देखें
- अक्सर पूछे जाने वाले सवाल और समस्या का हल
- Cloud Audit Logging
- समाधान
- Next.js पर इमेज लोड होने की प्रोसेस को ऑप्टिमाइज़ करना
- वीपीसी नेटवर्क कनेक्ट करना
Hosting
- शुरुआती जानकारी
- इस्तेमाल के उदाहरण एक्सप्लोर करना
- शुरू करना
- जांच करें, झलक देखें, फिर डिप्लॉय करें
- GitHub पुल अनुरोधों के ज़रिए डिप्लॉय करें
- कई साइटों पर प्रोजेक्ट के संसाधन शेयर करना
- कस्टम डोमेन कनेक्ट करें
- होस्टिंग व्यवहार को कॉन्फ़िगर करें
- i18n पुनर्लेखनों को कॉन्फ़िगर करें
- रिज़र्व किए गए यूआरएल का इस्तेमाल करके SDK टूल जोड़ें
- लाइव और मैनेज करें चैनल, रिलीज़, और वर्शन की झलक देखना
- क्लाउड लॉगिंग से वेब अनुरोध डेटा की निगरानी करें
- इस्तेमाल, कोटा, और कीमत
- REST API का इस्तेमाल करके डिप्लॉय करें
Cloud Functions
- शुरुआती जानकारी
- पहली और दूसरी पीढ़ी के वर्शन की तुलना
- इस्तेमाल के उदाहरण एक्सप्लोर करना
- शुरू करना
- 2nd gen पर अपग्रेड करें
- फलन लिखें
* डिप्लॉयमेंट और रनटाइम के विकल्पों को मैनेज करें
* TypeScript में फ़ंक्शन लिखें
* सिंक करना, एक साथ काम नहीं करने वाली सुविधा, और प्रॉमिस
* एसिंक्रोनस फ़ंक्शन को फिर से आज़माएं
* अपने एनवायरमेंट को कॉन्फ़िगर करना
* फ़ंक्शन व्यवस्थित करें
* डिपेंडेंसी हैंडल करना
* नेटवर्किंग को ऑप्टिमाइज़ किया जा रहा है
* सलाह और ट्रिक - Cloud Run फ़ंक्शन और Firebase
- Cloud Functions की जगहें
- कोटा और सीमाएं
- Cloud Functions (1st gen)
* Analytics ट्रिगर
* पुष्टि करने वाले ट्रिगर
* पुष्टि करने वाले ट्रिगर ब्लॉक करना
* अपने ऐप्लिकेशन से फ़ंक्शन कॉल करें
* एचटीटीपी अनुरोधों के ज़रिए कॉल फ़ंक्शन
* Cloud Firestore के ट्रिगर
* Cloud Storage के ट्रिगर
* अपने एनवायरमेंट को कॉन्फ़िगर करना
* Cloud Tasks की मदद से, फ़ंक्शन को सूची में जोड़ें
* शुरू करना
* डिप्लॉयमेंट और रनटाइम के विकल्पों को मैनेज करें
* फ़ंक्शन व्यवस्थित करें
* Pub/Sub ट्रिगर
* रीयलटाइम डेटाबेस ट्रिगर
* रिमोट कॉन्फ़िगरेशन ट्रिगर
* गड़बड़ियों की शिकायत करना
* शेड्यूल पर फ़ंक्शन चलाना
* टेस्ट लैब के ट्रिगर
* लॉग लिखें और देखें
Extensions
- शुरुआती जानकारी
- इस्तेमाल के उदाहरण
- अपने प्रोजेक्ट में एक्सटेंशन का इस्तेमाल करना
- खास जानकारी
- एक्सटेंशन इंस्टॉल करना
- इंस्टॉल किए गए एक्सटेंशन मैनेज करें
- किसी एक्सटेंशन को दी गई अनुमतियां
- मेनिफ़ेस्ट की मदद से कॉन्फ़िगरेशन मैनेज करना
- Firebase के एक्सटेंशन
- इमेज का आकार बदलें
- संग्रह को BigQuery में ले जाएं
- टेक्स्ट का अनुवाद करें
- डिस्ट्रिब्यूटेड काउंटर
- यूआरएल छोटे करें
- चाइल्ड नोड की सीमा
- बिल्ड और एक्सटेंशन पब्लिश करना
- खास जानकारी
- शुरू करना
- फलन लिखें
- पैरामीटर सेट अप करना
- लाइफ़साइकल इवेंट मैनेज करना
- उपयोगकर्ता हुक जोड़ें
- सही ऐक्सेस सेट अप करना
- उपयोगकर्ता दस्तावेज़ बनाएं
- प्रकाशक के तौर पर रजिस्टर करें
- एक्सटेंशन पब्लिश करना
- extensions.yaml के लिए रेफ़रंस
- Firebase एक्सटेंशन प्रकाशक अनुबंध
Firebase ML
- शुरुआती जानकारी
- कोड लैब
- कस्टम मॉडल
- डिप्लॉय करें और कस्टम मॉडल मैनेज करें
- Cloud Vision API का इस्तेमाल करें
- बेहतर विषय
- प्रोडक्शन की तैयारी करें
- (अब काम नहीं करता) Cloud Vision और Cloud AutoML Vision Edge
- ऐसे विज़न SDK टूल जो अब काम नहीं करते
- लेगसी दस्तावेज़
- Firebase के लिए मशीन लर्निंग (ML) किट
* शुरुआती जानकारी
* Vision
* AutoML Vision Edge
* खास जानकारी
* इमेज लेबल करने के मॉडल को ट्रेनिंग दें
* डेटासेट माइग्रेट करना
* प्राकृतिक भाषा
* कस्टम मॉडल
* होस्ट किए गए कस्टम मॉडल मैनेज करें
* अपनी पसंद के मुताबिक TensorFlow Lite बिल्ड इस्तेमाल करें
* iOS
* Android
* बेहतर विषय
* किसी मॉडल के दो वर्शन का A/B टेस्ट करना
* iOS
* Android
* प्रोडक्शन की तैयारी करें
* ऐप्लिकेशन के पैकेज का साइज़ कम करें
* Android
मिलते-जुलते प्रॉडक्ट
अपने ऐप्लिकेशन में Facebook Login या Facebook Limited Login को इंटिग्रेट करके, उपयोगकर्ताओं को Firebase के साथ अपने Facebook खातों से पुष्टि करने की अनुमति दी जा सकती है.
शुरू करने से पहले
Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
- Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Packages पर जाएं.
- जब आपसे कहा जाए, तब Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:
https://github.com/firebase/firebase-ios-sdk.git
- Firebase Authentication लाइब्रेरी चुनें.
- टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में
-ObjCफ़्लैग जोड़ें. - इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी से जुड़ी समस्या को हल करना शुरू कर देगा और उन्हें बैकग्राउंड में डाउनलोड करेगा.
इसके बाद, कॉन्फ़िगरेशन से जुड़े कुछ चरण पूरे करें:
- Facebook for Developers साइट पर जाकर, अपने ऐप्लिकेशन के लिए ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट पाएं.
- Facebook से लॉगिन करने की सुविधा चालू करें:
- Firebase कंसोल में, Authentication सेक्शन खोलें.
- साइन इन करने का तरीका टैब पर, Facebook से साइन इन करने का तरीका चालू करें. साथ ही, Facebook से मिले ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट की जानकारी दें.
- इसके बाद, पक्का करें कि आपका OAuth रीडायरेक्ट यूआरआई (जैसे कि
my-app-12345.firebaseapp.com/__/auth/handler), Facebook for Developers साइट पर, Facebook ऐप्लिकेशन के सेटिंग पेज में, OAuth रीडायरेक्ट यूआरआई के तौर पर शामिल हो. इसके लिए, Product Settings > Facebook Login कॉन्फ़िगरेशन में जाएं.
Facebook Login लागू करना
"क्लासिक" Facebook Login का इस्तेमाल करने के लिए, यह तरीका अपनाएं. इसके अलावा, अगले सेक्शन में दिखाए गए तरीके से, Facebook Limited Login का इस्तेमाल किया जा सकता है.
- डेवलपर के दस्तावेज़ में दिए गए निर्देशों का पालन करके, Facebook Login को अपने ऐप्लिकेशन में इंटिग्रेट करें.
FBSDKLoginButtonऑब्जेक्ट को शुरू करते समय, लॉगिन और लॉगआउट इवेंट पाने के लिए एक डेलिगेट सेट करें. उदाहरण के लिए:
Swift
let loginButton = FBSDKLoginButton()
loginButton.delegate = self
Objective-C
FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init];
loginButton.delegate = self;
आपने जिसे ईमेल खाते का ऐक्सेस दिया है उसके खाते में, didCompleteWithResult:error: लागू करें.
Swift
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if let error = error {
print(error.localizedDescription)
return
}
// ...
}
Objective-C
- (void)loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
error:(NSError *)error {
if (error == nil) {
// ...
} else {
NSLog(error.localizedDescription);
}
}
- अपने
UIApplicationDelegateमेंFirebaseCoreमॉड्यूल इंपोर्ट करें. साथ ही, अपने ऐप्लिकेशन डेलिगेट में इस्तेमाल किए जाने वाले अन्य Firebase मॉड्यूल भी इंपोर्ट करें. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:
SwiftUI
import SwiftUI
import FirebaseCore
import FirebaseFirestore
import FirebaseAuth
// ...
Swift
import FirebaseCore
import FirebaseFirestore
import FirebaseAuth
// ...
Objective-C
@import FirebaseCore;
@import FirebaseFirestore;
@import FirebaseAuth;
// ...
3. अपने ऐप्लिकेशन डेलिगेट के application(_:didFinishLaunchingWithOptions:) तरीके में, शेयर किए गए इंस्टेंस FirebaseApp को कॉन्फ़िगर करें:
SwiftUI
// Use Firebase library to configure APIs
FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs
FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs
[FIRApp configure];
4. अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलिगेट बनाना होगा. साथ ही, इसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor के ज़रिए अपनी App स्ट्रक्चर से जोड़ना होगा. आपको ऐप्लिकेशन के डेलिगेट स्विज़लिंग को भी बंद करना होगा. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.
SwiftUI
@main
struct YourApp: App {
// register app delegate for Firebase setup
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
5. जब कोई उपयोगकर्ता साइन इन कर लेता है, तो didCompleteWithResult:error: को लागू करने के दौरान, साइन इन किए गए उपयोगकर्ता के लिए ऐक्सेस टोकन पाएं. इसके बाद, इसे Firebase क्रेडेंशियल के लिए बदलें:
Swift
let credential = FacebookAuthProvider
.credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider
credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Facebook Limited Login को लागू करना
"क्लासिक" Facebook Login के बजाय Facebook Limited Login का इस्तेमाल करने के लिए, यह तरीका अपनाएं.
- डेवलपर के दस्तावेज़ में दिए गए निर्देशों का पालन करके, Facebook Limited Login को अपने ऐप्लिकेशन में इंटिग्रेट करें.
- साइन इन करने के हर अनुरोध के लिए, एक यूनीक रैंडम स्ट्रिंग जनरेट करें. इसे "नॉन्स" कहा जाता है. इसका इस्तेमाल यह पक्का करने के लिए किया जाता है कि आपको मिला आईडी टोकन, आपके ऐप्लिकेशन के पुष्टि करने के अनुरोध के जवाब में ही दिया गया हो. यह चरण, रीप्ले अटैक को रोकने के लिए ज़रूरी है. यहां दिए गए उदाहरण की तरह,
SecRandomCopyBytes(_:_:_)की मदद से क्रिप्टोग्राफ़िक रूप से सुरक्षित नॉनस जनरेट किया जा सकता है:
Swift
private func randomNonceString(length: Int = 32) -> String {
precondition(length > 0)
var randomBytes = [UInt8](repeating: 0, count: length)
let errorCode = SecRandomCopyBytes(kSecRandomDefault, randomBytes.count, &randomBytes)
if errorCode != errSecSuccess {
fatalError(
"Unable to generate nonce. SecRandomCopyBytes failed with OSStatus (errorCode)"
)
}
let charset: [Character] =
Array("0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._")
let nonce = randomBytes.map { byte in
// Pick a random character from the set, wrapping around if needed.
charset[Int(byte) % charset.count]
}
return String(nonce)
}
#### Objective-C
// Adapted from https://auth0.com/docs/api-auth/tutorials/nonce#generate-a-cryptographically-random-nonce
- (NSString *)randomNonce:(NSInteger)length {
NSAssert(length > 0, @"Expected nonce to have positive length");
NSString *characterSet = @"0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._";
NSMutableString *result = [NSMutableString string];
NSInteger remainingLength = length;
while (remainingLength > 0) {
NSMutableArray *randoms = [NSMutableArray arrayWithCapacity:16];
for (NSInteger i = 0; i < 16; i++) {
uint8_t random = 0;
int errorCode = SecRandomCopyBytes(kSecRandomDefault, 1, &random);
NSAssert(errorCode == errSecSuccess, @"Unable to generate nonce: OSStatus %i", errorCode);
[randoms addObject:@(random)];
}
for (NSNumber *random in randoms) {
if (remainingLength == 0) {
break;
}
if (random.unsignedIntValue < characterSet.length) {
unichar character = [characterSet characterAtIndex:random.unsignedIntValue];
[result appendFormat:@"%C", character];
remainingLength--;
}
}
}
return [result copy];
}
आपको साइन-इन करने के अनुरोध के साथ, नॉन्स का SHA-256 हैश भेजना होगा. Facebook, जवाब में इसे बिना किसी बदलाव के पास करेगा. Firebase, जवाब की पुष्टि करता है. इसके लिए, वह ओरिजनल नॉनस को हैश करता है और उसकी तुलना Facebook से मिली वैल्यू से करता है.
Swift
@available(iOS 13, *)
private func sha256(_ input: String) -> String {
let inputData = Data(input.utf8)
let hashedData = SHA256.hash(data: inputData)
let hashString = hashedData.compactMap {
String(format: "%02x", $0)
}.joined()
return hashString
}
#### Objective-C
- (NSString *)stringBySha256HashingString:(NSString *)input {
const char *string = [input UTF8String];
unsigned char result[CC_SHA256_DIGEST_LENGTH];
CC_SHA256(string, (CC_LONG)strlen(string), result);
NSMutableString *hashed = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2];
for (NSInteger i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) {
[hashed appendFormat:@"%02x", result[i]];
}
return hashed;
}
FBSDKLoginButtonसेट अप करते समय, लॉगिन और लॉग आउट इवेंट पाने के लिए किसी प्रतिनिधि को सेट करें. साथ ही, ट्रैकिंग मोड कोFBSDKLoginTrackingLimitedपर सेट करें और एक नॉनस अटैच करें. उदाहरण के लिए:
Swift
func setupLoginButton() {
let nonce = randomNonceString()
currentNonce = nonce
loginButton.delegate = self
loginButton.loginTracking = .limited
loginButton.nonce = sha256(nonce)
}
Objective-C
- (void)setupLoginButton {
NSString *nonce = [self randomNonce:32];
self.currentNonce = nonce;
self.loginButton.delegate = self;
self.loginButton.loginTracking = FBSDKLoginTrackingLimited
self.loginButton.nonce = [self stringBySha256HashingString:nonce];
}
आपने जिसे ईमेल खाते का ऐक्सेस दिया है उसके खाते में, didCompleteWithResult:error: लागू करें.
Swift
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if let error = error {
print(error.localizedDescription)
return
}
// ...
}
Objective-C
- (void)loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
error:(NSError *)error {
if (error == nil) {
// ...
} else {
NSLog(error.localizedDescription);
}
}
- अपने
UIApplicationDelegateमेंFirebaseCoreमॉड्यूल इंपोर्ट करें. साथ ही, अपने ऐप्लिकेशन डेलिगेट में इस्तेमाल किए जाने वाले अन्य Firebase मॉड्यूल भी इंपोर्ट करें. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:
SwiftUI
import SwiftUI
import FirebaseCore
import FirebaseFirestore
import FirebaseAuth
// ...
Swift
import FirebaseCore
import FirebaseFirestore
import FirebaseAuth
// ...
Objective-C
@import FirebaseCore;
@import FirebaseFirestore;
@import FirebaseAuth;
// ...
5. अपने ऐप्लिकेशन डेलिगेट के application(_:didFinishLaunchingWithOptions:) तरीके में, शेयर किए गए इंस्टेंस FirebaseApp को कॉन्फ़िगर करें:
SwiftUI
// Use Firebase library to configure APIs
FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs
FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs
[FIRApp configure];
6. अगर SwiftUI का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलिगेट बनाना होगा. साथ ही, इसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor के ज़रिए अपनी App स्ट्रक्चर से जोड़ना होगा. आपको ऐप्लिकेशन के डेलिगेट स्विज़लिंग को भी बंद करना होगा. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.
SwiftUI
@main
struct YourApp: App {
// register app delegate for Firebase setup
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
7. जब कोई उपयोगकर्ता साइन इन कर लेता है, तब didCompleteWithResult:error: को लागू करने के दौरान, Firebase क्रेडेंशियल पाने के लिए, Facebook से मिले जवाब में मौजूद आईडी टोकन का इस्तेमाल करें. इसके साथ, बिना हैश किया गया नॉन्स भी इस्तेमाल करें:
Swift
// Initialize a Firebase credential.
let idTokenString = AuthenticationToken.current?.tokenString
let nonce = currentNonce
let credential = OAuthProvider.credential(withProviderID: "facebook.com",
idToken: idTokenString!,
rawNonce: nonce)
Objective-C
// Initialize a Firebase credential.
NSString *idTokenString = FBSDKAuthenticationToken.currentAuthenticationToken.tokenString;
NSString *rawNonce = self.currentNonce;
FIROAuthCredential *credential = [FIROAuthProvider credentialWithProviderID:@"facebook.com"
IDToken:idTokenString
rawNonce:rawNonce];
Firebase की मदद से पुष्टि करना
आखिर में, Firebase क्रेडेंशियल का इस्तेमाल करके Firebase से पुष्टि करें:
Swift
Auth.auth().signIn(with: credential) { authResult, error in if let error = error { let authError = error as NSError if isMFAEnabled, authError.code == AuthErrorCode.secondFactorRequired.rawValue { // The user is a multi-factor user. Second factor challenge is required. let resolver = authError .userInfo[AuthErrorUserInfoMultiFactorResolverKey] as! MultiFactorResolver var displayNameString = "" for tmpFactorInfo in resolver.hints { displayNameString += tmpFactorInfo.displayName ?? "" displayNameString += " " } self.showTextInputPrompt( withMessage: "Select factor to sign in\n(displayNameString)", completionBlock: { userPressedOK, displayName in var selectedHint: PhoneMultiFactorInfo? for tmpFactorInfo in resolver.hints { if displayName == tmpFactorInfo.displayName { selectedHint = tmpFactorInfo as? PhoneMultiFactorInfo } } PhoneAuthProvider.provider() .verifyPhoneNumber(with: selectedHint!, uiDelegate: nil, multiFactorSession: resolver .session) { verificationID, error in if error != nil { print( "Multi factor start sign in failed. Error: (error.debugDescription)" ) } else { self.showTextInputPrompt( withMessage: "Verification code for (selectedHint?.displayName ?? "")", completionBlock: { userPressedOK, verificationCode in let credential: PhoneAuthCredential? = PhoneAuthProvider.provider() .credential(withVerificationID: verificationID!, verificationCode: verificationCode!) let assertion: MultiFactorAssertion? = PhoneMultiFactorGenerator .assertion(with: credential!) resolver.resolveSignIn(with: assertion!) { authResult, error in if error != nil { print( "Multi factor finanlize sign in failed. Error: (error.debugDescription)" ) } else { self.navigationController?.popViewController(animated: true) } } } ) } } } ) } else { self.showMessagePrompt(error.localizedDescription) return } // ... return } // User is signed in // ... }
Objective-C
[[FIRAuth auth] signInWithCredential:credential completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { if (isMFAEnabled && error && error.code == FIRAuthErrorCodeSecondFactorRequired) { FIRMultiFactorResolver *resolver = error.userInfo[FIRAuthErrorUserInfoMultiFactorResolverKey]; NSMutableString *displayNameString = [NSMutableString string]; for (FIRMultiFactorInfo *tmpFactorInfo in resolver.hints) { [displayNameString appendString:tmpFactorInfo.displayName]; [displayNameString appendString:@" "]; } [self showTextInputPromptWithMessage:[NSString stringWithFormat:@"Select factor to sign in\n%@", displayNameString] completionBlock:^(BOOL userPressedOK, NSString _Nullable displayName) { FIRPhoneMultiFactorInfo selectedHint; for (FIRMultiFactorInfo *tmpFactorInfo in resolver.hints) { if ([displayName isEqualToString:tmpFactorInfo.displayName]) { selectedHint = (FIRPhoneMultiFactorInfo *)tmpFactorInfo; } } [FIRPhoneAuthProvider.provider verifyPhoneNumberWithMultiFactorInfo:selectedHint UIDelegate:nil multiFactorSession:resolver.session completion:^(NSString * _Nullable verificationID, NSError * _Nullable error) { if (error) { [self showMessagePrompt:error.localizedDescription]; } else { [self showTextInputPromptWithMessage:[NSString stringWithFormat:@"Verification code for %@", selectedHint.displayName] completionBlock:^(BOOL userPressedOK, NSString *_Nullable verificationCode) { FIRPhoneAuthCredential *credential = [[FIRPhoneAuthProvider provider] credentialWithVerificationID:verificationID verificationCode:verificationCode]; FIRMultiFactorAssertion *assertion = [FIRPhoneMultiFactorGenerator assertionWithCredential:credential]; [resolver resolveSignInWithAssertion:assertion completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { if (error) { [self showMessagePrompt:error.localizedDescription]; } else { NSLog(@"Multi factor finanlize sign in succeeded."); } }]; }]; } }]; }]; } else if (error) { // ... return; } // User successfully signed in. Get user data from the FIRUser object if (authResult == nil) { return; } FIRUser *user = authResult.user; // ... }];
अगले चरण
जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो एक नया उपयोगकर्ता खाता बनता है. यह खाता, उन क्रेडेंशियल से लिंक होता है जिनका इस्तेमाल करके उपयोगकर्ता ने साइन इन किया है. जैसे, उपयोगकर्ता का नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने वाली कंपनी की जानकारी. यह नया खाता, आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि उपयोगकर्ता ने किस तरह से साइन इन किया है.
- अपने ऐप्लिकेशन में, User ऑब्जेक्ट से उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाई जा सकती है. उपयोगकर्ताओं को मैनेज करना लेख पढ़ें.
- अपने Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में,
authवैरिएबल से साइन इन किए हुए उपयोगकर्ता का यूनीक User-ID पाया जा सकता है. साथ ही, इसका इस्तेमाल यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.
उपयोगकर्ताओं को पुष्टि करने वाले कई प्रोवाइडर का इस्तेमाल करके, आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है. इसके लिए, पुष्टि करने वाले प्रोवाइडर के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करें.
किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut: को कॉल करें.
Swift
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
Objective-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
आपको पुष्टि करने से जुड़ी सभी गड़बड़ियों के लिए, गड़बड़ी मैनेज करने वाला कोड भी जोड़ना पड़ सकता है. गड़बड़ियां ठीक करना लेख पढ़ें.
जब तक कुछ अलग से न बताया जाए, तब तक इस पेज की सामग्री को Creative Commons Attribution 4.0 License के तहत और कोड के नमूनों को Apache 2.0 License के तहत लाइसेंस मिला है. ज़्यादा जानकारी के लिए, Google Developers साइट नीतियां देखें. Oracle और/या इससे जुड़ी हुई कंपनियों का, Java एक रजिस्टर किया हुआ ट्रेडमार्क है.
आखिरी बार 2025-12-10 (UTC) को अपडेट किया गया.