अपने ऐप्लिकेशन को ऑथेंटिकेशन एम्युलेटर से कनेक्ट करें

अपने ऐप्लिकेशन के साथ पुष्टि करने वाले एम्युलेटर का इस्तेमाल करने से पहले, पक्का करें कि आप Firebase के लोकल एम्युलेटर सुइट के वर्कफ़्लो को समझते हैं. साथ ही, यह भी पक्का करें कि आपने लोकल एम्युलेटर सुइट को इंस्टॉल और कॉन्फ़िगर किया है और उसके सीएलआई निर्देश देखे हैं.

इस विषय में माना जाता है कि आपको प्रोडक्शन के लिए, Firebase से पुष्टि करने से जुड़े समाधान डेवलप करने के बारे में पहले से जानकारी है. अगर ज़रूरी हो, तो प्लैटफ़ॉर्म और पुष्टि करने की तकनीक को जोड़ने से जुड़े दस्तावेज़ देखें.

पुष्टि करने के एम्युलेटर की मदद से क्या किया जा सकता है?

पुष्टि करने वाला एम्युलेटर, Firebase से पुष्टि करने वाली सेवाओं का हाई-फ़िडेलिटी वाला स्थानीय एम्युलेटर उपलब्ध कराता है. इससे, प्रोडक्शन Firebase से पुष्टि करने में मिलने वाली कई सुविधाएं मिलती हैं. Apple प्लैटफ़ॉर्म, Android और वेब Firebase SDK टूल के साथ मिलकर, एम्युलेटर की मदद से आप ये काम कर सकते हैं:

  • ईमेल/पासवर्ड, फ़ोन नंबर/एसएमएस, एसएमएस मल्टी-फ़ैक्टर, और तीसरे पक्ष (जैसे, Google) की पहचान की पुष्टि करने की सुविधा की जांच करने के लिए, एम्युलेट किए गए उपयोगकर्ता खाते बनाएं, उन्हें अपडेट करें, और मैनेज करें
  • एम्युलेट किए गए उपयोगकर्ताओं को देखना और उनमें बदलाव करना
  • कस्टम टोकन ऑथेंटिकेशन सिस्टम का प्रोटोटाइप बनाना
  • एम्युलेटर के यूज़र इंटरफ़ेस (यूआई) लॉग टैब में, पुष्टि करने से जुड़े मैसेज देखें.

कोई Firebase प्रोजेक्ट चुनें

Firebase लोकल एम्युलेटर सुइट, किसी एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट को एम्युलेट करता है.

एम्युलेटर शुरू करने से पहले, इस्तेमाल करने के लिए प्रोजेक्ट चुनें. इसके लिए, अपनी वर्किंग डायरेक्ट्री के सीएलआई रन firebase use में जाएं. इसके अलावा, हर एम्युलेटर कमांड को --project फ़्लैग भेजा जा सकता है.

Local Emulator Suite, असली Firebase प्रोजेक्ट और डेमो प्रोजेक्ट के एम्युलेशन के साथ काम करता है.

प्रोजेक्ट का टाइप सुविधाएं एम्युलेटर के साथ इस्तेमाल करें
रीयल

असली Firebase प्रोजेक्ट वह होता है जिसे आपने बनाया और कॉन्फ़िगर किया है (ऐसा ज़्यादातर Firebase कंसोल के ज़रिए होता है).

रीयल प्रोजेक्ट में लाइव रिसॉर्स होते हैं, जैसे कि डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन या Firebase प्रोजेक्ट के लिए सेट अप किए गए अन्य संसाधन.

रीयल Firebase प्रोजेक्ट के साथ काम करते समय, इस्तेमाल किए जा सकने वाले किसी भी या सभी प्रॉडक्ट के लिए एम्युलेटर चलाए जा सकते हैं.

आप जिन प्रॉडक्ट को एम्युलेट नहीं कर रहे हैं उनके लिए, आपके ऐप्लिकेशन और कोड लाइव रिसॉर्स (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन वगैरह) के साथ इंटरैक्ट करेंगे.

डेमो

डेमो Firebase प्रोजेक्ट में, कोई असल Firebase कॉन्फ़िगरेशन और लाइव संसाधन नहीं होते. इन प्रोजेक्ट को आम तौर पर कोडलैब या दूसरे ट्यूटोरियल से ऐक्सेस किया जाता है.

डेमो प्रोजेक्ट के प्रोजेक्ट आईडी में demo- प्रीफ़िक्स होता है.

डेमो Firebase प्रोजेक्ट के साथ काम करते समय, आपके ऐप्लिकेशन और कोड सिर्फ़ एम्युलेटर के साथ इंटरैक्ट करते हैं. अगर आपका ऐप्लिकेशन किसी ऐसे संसाधन से इंटरैक्ट करने की कोशिश करता है जिसके लिए एम्युलेटर नहीं चल रहा है, तो वह कोड काम नहीं करेगा.

हमारा सुझाव है कि जहां भी मुमकिन हो, डेमो प्रोजेक्ट का इस्तेमाल करें. सदस्यता के साथ यहां दिए गए फ़ायदे मिलते हैं:

  • सेटअप करना आसान हो जाता है, क्योंकि Firebase प्रोजेक्ट बनाए बिना एम्युलेटर चलाए जा सकते हैं
  • बेहतर सुरक्षा, क्योंकि अगर आपका कोड गलती से ऐसे संसाधन शुरू कर देता है जो सिम्युलेट नहीं किए गए (प्रोडक्शन) हैं, तो डेटा को बदलने, इस्तेमाल करने, और बिलिंग करने की कोई गुंजाइश नहीं होती
  • SDK टूल के कॉन्फ़िगरेशन को डाउनलोड करने के लिए, इंटरनेट ऐक्सेस करने की ज़रूरत नहीं होती है. इसलिए, यह ऑफ़लाइन तरीके से भी बेहतर तरीके से काम करती है.

एम्युलेटर से बात करने के लिए, अपने ऐप्लिकेशन को इंस्टॉल करें

Android, iOS, और वेब SDK टूल

इस तरह से, पुष्टि करने वाले एम्युलेटर के साथ इंटरैक्ट करने के लिए, अपना इन-ऐप्लिकेशन कॉन्फ़िगरेशन या टेस्ट क्लास सेट अप करें.

Kotlin+KTX
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
Swift
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)

Web

import { getAuth, connectAuthEmulator } from "firebase/auth";

const auth = getAuth();
connectAuthEmulator(auth, "http://127.0.0.1:9099");

Web

const auth = firebase.auth();
auth.useEmulator("http://127.0.0.1:9099");

Cloud Firestore या रीयलटाइम डेटाबेस के लिए, पुष्टि करने और Cloud Functions या Firebase के सुरक्षा नियमों के बीच इंटरैक्शन को प्रोटोटाइप करने और उनकी जांच करने के लिए किसी और सेटअप की ज़रूरत नहीं होती है. जब पुष्टि करने वाला एम्युलेटर कॉन्फ़िगर होता है और दूसरे एम्युलेटर चल रहे होते हैं, तो वे अपने-आप एक साथ काम करते हैं.

एडमिन SDK

FIREBASE_AUTH_EMULATOR_HOST एनवायरमेंट वैरिएबल सेट होने पर, Firebase एडमिन SDK टूल पुष्टि करने वाले एम्युलेटर से अपने-आप कनेक्ट हो जाते हैं.

export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"

ध्यान दें कि Cloud Functions एम्युलेटर को पुष्टि करने वाले एम्युलेटर की जानकारी अपने-आप मिल जाती है. इसलिए, Cloud Functions और पुष्टि करने वाले एम्युलेटर के बीच इंटिग्रेशन की जांच करते समय आप इस चरण को छोड़ सकते हैं. Cloud Functions में एडमिन SDK के लिए, एनवायरमेंट वैरिएबल अपने-आप सेट हो जाएगा.

एनवायरमेंट वैरिएबल सेट होने पर, Firebase एडमिन SDK टूल, पुष्टि करने वाले एम्युलेटर (verifyIdToken और createSessionCookie तरीकों से) से जारी किए गए साइन नहीं किए गए आईडी टोकन और सेशन कुकी को स्वीकार करेंगे. इससे लोकल डेवलपमेंट और टेस्टिंग को आसान बनाने में मदद मिलेगी. कृपया पक्का करें कि प्रोडक्शन में एनवायरमेंट वैरिएबल सेट नहीं किया जाए.

अगर आपको अपने एडमिन SDK कोड को किसी दूसरे एनवायरमेंट में चल रहे शेयर किए गए एम्युलेटर से कनेक्ट करना है, तो आपको वही प्रोजेक्ट आईडी बताना होगा जिसे आपने Firebase सीएलआई का इस्तेमाल करके सेट किया था. आपके पास किसी प्रोजेक्ट आईडी को सीधे initializeApp में पास करने या GCLOUD_PROJECT एनवायरमेंट वैरिएबल सेट करने का विकल्प होता है.

Node.js का एडमिन SDK
admin.initializeApp({ projectId: "your-project-id" });
एनवायरमेंट वैरिएबल
export GCLOUD_PROJECT="your-project-id"

आईडी टोकन

सुरक्षा की वजहों से, पुष्टि करने वाला एम्युलेटर, बिना साइन किए गए आईडी टोकन जारी करता है. इन्हें कॉन्फ़िगर करने के बाद, सिर्फ़ Firebase के दूसरे एम्युलेटर या Firebase एडमिन SDK इन्हें स्वीकार करते हैं. इन टोकन को प्रोडक्शन मोड में चलने वाली Firebase सेवाएं या Firebase एडमिन SDK टूल अस्वीकार कर देंगे (उदाहरण के लिए, सेटअप के लिए ऊपर बताए गए तरीकों के बिना डिफ़ॉल्ट तौर पर काम करना).

एम्युलेटर शुरू करें

आप एम्युलेटर सुइट यूज़र इंटरफ़ेस (यूआई) के ज़रिए इंटरैक्टिव तरीके से पुष्टि करने वाले एम्युलेटर का इस्तेमाल कर सकते हैं. यह स्थानीय REST इंटरफ़ेस के ज़रिए नहीं होता है. इन सेक्शन में, इस्तेमाल के इंटरैक्टिव और नॉन-इंटरैक्टिव इस्तेमाल के उदाहरण दिए गए हैं.

पुष्टि करने वाला एम्युलेटर, उसका REST इंटरफ़ेस, और Emulator Suite यूज़र इंटरफ़ेस (यूआई) शुरू करने के लिए, ये तरीके अपनाएं:

firebase emulators:start

पहचान छिपाकर पुष्टि करने के लिए, आपका ऐप्लिकेशन आपके प्लैटफ़ॉर्म (iOS, Android, वेब) के लिए साइन-इन लॉजिक का इस्तेमाल कर सकता है.

ईमेल/पासवर्ड की पुष्टि करने के लिए, आपके पास प्रोटोटाइपिंग शुरू करने का विकल्प है. इसके लिए, अपने ऐप्लिकेशन से पुष्टि करने वाले एम्युलेटर में उपयोगकर्ता खातों को जोड़ें. ऐसा करने के लिए, पुष्टि करने वाले SDK टूल का इस्तेमाल करें या एम्युलेटर सुइट का यूज़र इंटरफ़ेस (यूआई) इस्तेमाल करें.

  1. एम्युलेटर सुइट यूज़र इंटरफ़ेस (यूआई) में, पुष्टि करें टैब पर क्लिक करें.
  2. उपयोगकर्ता जोड़ें बटन पर क्लिक करें.
  3. ईमेल की पुष्टि करने वाले फ़ील्ड भरने के लिए, उपयोगकर्ता खाता बनाने वाले विज़र्ड का पालन करें.

टेस्ट यूज़र बनाने से, ऐप्लिकेशन आपके प्लैटफ़ॉर्म (iOS, Android, वेब) के लिए SDK टूल लॉजिक का इस्तेमाल करके, उपयोगकर्ता को साइन इन और साइन आउट कर सकता है.

ईमेल लिंक फ़्लो के साथ ईमेल की पुष्टि/साइन-इन की जांच करने के लिए, एम्युलेटर, यूआरएल को उस टर्मिनल में प्रिंट करता है जिस पर firebase emulators:start को एक्ज़ीक्यूट किया गया था.

i  To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-key

पुष्टि करने के इवेंट को सिम्युलेट करने के लिए, इस लिंक को अपने ब्राउज़र में चिपकाएं. साथ ही, देखें कि पुष्टि हो गई है या नहीं.

{
  "authEmulator": {
    "success": "The email has been successfully verified.",
    "email": "customer@example.com"
  }
}

पासवर्ड फिर से सेट करने की जांच करने के लिए एम्युलेटर, टर्मिनल से मिलता-जुलता यूआरएल प्रिंट करता है. इसमें newPassword पैरामीटर (जिसे ज़रूरत के मुताबिक बदला जा सकता है) भी शामिल होता है.

http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD

नॉन-इंटरैक्टिव टेस्टिंग

ईमेल/पासवर्ड उपयोगकर्ता खातों को मैनेज करने के लिए, एम्युलेटर सुइट के यूज़र इंटरफ़ेस (यूआई) या क्लाइंट कोड का इस्तेमाल करने के बजाय, टेस्ट सेट अप की स्क्रिप्ट लिखी जा सकती है. इसमें उपयोगकर्ता खाते बनाने और मिटाने के लिए, REST API को कॉल किया जाता है. साथ ही, एम्युलेटर पर भेजे गए ईमेल की पुष्टि करने वाले यूआरएल को पॉप्युलेट करने के लिए आउट-ऑफ़-बैंड ईमेल पुष्टि कोड फ़ेच किए जा सकते हैं. इससे प्लैटफ़ॉर्म और टेस्ट कोड को अलग-अलग रखा जाता है. साथ ही, नॉन-इंटरैक्टिव तरीके से टेस्ट किया जा सकता है.

ईमेल और पासवर्ड की जांच करने वाले नॉन-इंटरैक्टिव फ़्लो के लिए, आम तौर पर इस क्रम में डेटा का इस्तेमाल किया जाता है.

  1. पुष्टि के signUp REST एंडपॉइंट से उपयोगकर्ताओं को बनाएं.
  2. जांच करने के लिए, उपयोगकर्ताओं के ईमेल और पासवर्ड का इस्तेमाल करके साइन इन करें.
  3. अगर आपकी जांच पर लागू हो, तो एम्युलेटर के लिए बने REST एंडपॉइंट से उपलब्ध आउट-ऑफ़-बैंड ईमेल पुष्टि कोड फ़ेच करें.
  4. डेटा मिटाने के लिए, उपयोगकर्ता के रिकॉर्ड को एम्युलेटर के लिए खास REST एंडपॉइंट से फ़्लश करें.

फ़ोन/एसएमएस की मदद से पुष्टि करने की सुविधा

फ़ोन की पुष्टि करने के लिए, पुष्टि करने वाला एम्युलेटर इन पर काम नहीं करता:

  • reCAPTCHA और एपीएन फ़्लो. एम्युलेटर के साथ इंटरैक्ट करने के लिए कॉन्फ़िगर किए जाने के बाद, क्लाइंट SDK टूल पुष्टि के इन तरीकों को बंद कर देते हैं. यह तरीका वैसा ही होता है जैसा इंटिग्रेशन टेस्टिंग (iOS, Android, वेब) में बताया गया है.
  • Firebase कंसोल में, पहले से कॉन्फ़िगर किए गए कोड के साथ फ़ोन नंबर की जांच करें.

अगर क्लाइंट कोड के लिहाज़ से ऐसा नहीं है, तो फ़ोन/एसएमएस की पुष्टि करने का फ़्लो, प्रोडक्शन के लिए बताए गए फ़्लो (iOS, Android, वेब) के जैसा ही होता है.

एम्युलेटर सुइट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना:

  1. एम्युलेटर सुइट यूज़र इंटरफ़ेस (यूआई) में, पुष्टि करें टैब पर क्लिक करें.
  2. उपयोगकर्ता जोड़ें बटन पर क्लिक करें.
  3. फ़ोन की पुष्टि करने वाले फ़ील्ड भरने के लिए, उपयोगकर्ता खाता बनाने वाले विज़र्ड का पालन करें.

हालांकि, फ़ोन ऑथेंटिकेशन फ़्लो के लिए, एम्युलेटर किसी भी मैसेज की डिलीवरी ट्रिगर नहीं करेगा, क्योंकि मोबाइल और इंटरनेट सेवा देने वाली कंपनी से संपर्क करना दायरे से बाहर है और स्थानीय टेस्टिंग के लिए सही नहीं है! इसके बजाय, एम्युलेटर उस कोड को प्रिंट करता है जो एसएमएस के ज़रिए उसी टर्मिनल पर भेजा गया होगा जिस पर आपने firebase emulators:start चलाया था. इस कोड को ऐप्लिकेशन में डालें, ताकि उपयोगकर्ताओं को उनके मैसेज देखने की सुविधा मिलती रहे.

नॉन-इंटरैक्टिव टेस्टिंग

नॉन-इंटरैक्टिव फ़ोन ऑथेंटिकेशन टेस्टिंग के लिए, उपलब्ध एसएमएस कोड वापस पाने के लिए, ऑथेंटिकेशन एम्युलेटर REST API का इस्तेमाल करें. ध्यान रखें कि हर बार फ़्लो शुरू करने पर कोड अलग-अलग होता है.

सामान्य क्रम यहां दिया गया है.

  1. पुष्टि की प्रक्रिया शुरू करने के लिए, प्लैटफ़ॉर्म signInWithPhoneNumber पर कॉल करें.
  2. एम्युलेटर के लिए खास REST एंडपॉइंट का इस्तेमाल करके, पुष्टि करने वाला कोड वापस पाएं.
  3. पुष्टि करने वाला कोड बताने के लिए, हमेशा की तरह confirmationResult.confirm(code) पर कॉल करें.

बहु-स्तरीय एसएमएस

पुष्टि करने वाला एम्युलेटर, iOS, Android, और वेब के लिए प्रोडक्शन में उपलब्ध, एसएमएस के मल्टी-फ़ैक्टर ऑथेंटिकेशन (MFA) फ़्लो की प्रोटोटाइपिंग और जांच करने की सुविधा देता है.

एम्युलेटर में किसी मॉक उपयोगकर्ता को जोड़ने पर, MFA चालू किया जा सकता है. साथ ही, एक या उससे ज़्यादा ऐसे फ़ोन नंबर कॉन्फ़िगर किए जा सकते हैं जिन पर दूसरे चरण के एसएमएस भेजे जाएंगे. मैसेज उसी टर्मिनल के लिए आउटपुट होते हैं जिस पर आपने firebase emulators:start चलाया था और REST इंटरफ़ेस से उपलब्ध होता है.

तीसरे पक्ष के आइडेंटिटी प्रोवाइडर (आईडीपी) की पुष्टि करने के लिए इस्तेमाल किया गया तरीका

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

आम तौर पर, पुष्टि करने के लिए इन दो में से किसी एक तरीके से Firebase SDK टूल का इस्तेमाल किया जा सकता है:

  • आपका ऐप्लिकेशन, SDK टूल को पूरी प्रोसेस को एंड-टू-एंड मैनेज करने की अनुमति देता है. इसमें क्रेडेंशियल पाने के लिए, तीसरे पक्ष की आईडीपी (IdP) की सेवा देने वाली कंपनियों के साथ होने वाले सभी इंटरैक्शन भी शामिल हैं.
  • आपका ऐप्लिकेशन, उस पक्ष के SDK टूल का इस्तेमाल करके, सेवा देने वाली तीसरे पक्ष की कंपनी के क्रेडेंशियल मैन्युअल रूप से हासिल करता है और उन्हें पुष्टि करने वाले SDK टूल पर भेजता है.

फिर से, ऊपर दिए गए दस्तावेज़ के लिंक की जांच करें और पक्का करें कि आपको इस्तेमाल करने के लिए - Firebase SDK टूल की मदद से मैनेज किए जाने वाले बनाम मैन्युअल क्रेडेंशियल वापस पाने की प्रक्रिया के बारे में जानकारी है. ऑथेंटिकेशन एम्युलेटर, दोनों में से किसी भी तरीके की जांच करने में मदद करता है.

Firebase SDK टूल से चलने वाले आईडीपी फ़्लो की जांच करना

अगर आपका ऐप्लिकेशन इंटरैक्टिव टेस्टिंग के लिए, Microsoft, GitHub या Yahoo में साइन इन करने के लिए OAuthProvider जैसे किसी Firebase SDK टूल का एंड-टू-एंड फ़्लो इस्तेमाल करता है, तो पुष्टि करने वाला एम्युलेटर, उससे जुड़े साइन-इन पेज का लोकल वर्शन उपलब्ध कराता है. इससे आपको signinWithPopup या signInWithRedirect तरीके को कॉल करने वाले वेब ऐप्लिकेशन से पुष्टि करने में मदद मिलती है. लोकल सर्विस वाला यह साइन इन पेज, मोबाइल ऐप्लिकेशन में भी दिखता है. इसे आपके प्लैटफ़ॉर्म की वेबव्यू लाइब्रेरी रेंडर करती है.

फ़्लो आगे बढ़ने के साथ-साथ, एम्युलेटर ज़रूरत के हिसाब से तीसरे पक्ष के मॉक उपयोगकर्ता खाते और क्रेडेंशियल भी बनाता है.

मैन्युअल तरीके से क्रेडेंशियल वापस पाने के साथ आईडीपी फ़्लो की जांच करना

अगर "मैन्युअल" साइन-इन तकनीकों का इस्तेमाल करके, अपने प्लैटफ़ॉर्म के signInWithCredentials तरीके का इस्तेमाल किया जाता है, तो हमेशा की तरह आपका ऐप्लिकेशन, तीसरे पक्ष के असल साइन-इन क्रेडेंशियल का अनुरोध करेगा और तीसरे पक्ष के असल क्रेडेंशियल हासिल करेगा.

ध्यान दें कि एम्युलेटर पर, सिर्फ़ Google साइन-इन, Apple, और सेवा देने वाली अन्य कंपनियों से मिले क्रेडेंशियल के लिए, signInWithCredential की पुष्टि करने की सुविधा काम करती है जो JSON Web Tokens (JWT) के तौर पर लागू किए गए आईडी टोकन का इस्तेमाल करते हैं. ऐक्सेस टोकन इस्तेमाल नहीं किए जा सकते. जैसे, Facebook या Twitter से मिले ऐक्सेस टोकन, जो JWT नहीं हैं. इन मामलों में, अगला सेक्शन एक विकल्प के बारे में है.

नॉन-इंटरैक्टिव टेस्टिंग

नॉन-इंटरैक्टिव टेस्टिंग का एक तरीका यह है कि एम्युलेटर से दिखाए जाने वाले साइन-इन पेज पर, उपयोगकर्ता के क्लिक अपने-आप हो जाएं. वेब ऐप्लिकेशन के लिए, WebDriver जैसे कंट्रोल इंटरफ़ेस का इस्तेमाल करें. मोबाइल के लिए, अपने प्लैटफ़ॉर्म से यूज़र इंटरफ़ेस (यूआई) टेस्ट टूल, जैसे कि Espresso या Xcode का इस्तेमाल करें.

इसके अलावा, signInWithCredential (उदाहरण के लिए, कोड ब्रांच में) का इस्तेमाल करने के लिए, अपने कोड को अपडेट किया जा सकता है. साथ ही, खातों के लिए असली क्रेडेंशियल के बजाय, मॉक आईडी टोकन वाले टोकन की पुष्टि करने के फ़्लो का इस्तेमाल किया जा सकता है.

  1. आईडीपी से idTokens पाने वाले अपने कोड के हिस्से को फिर से जांचें या टिप्पणी करें. इससे जांच के दौरान, असली उपयोगकर्ता नाम और पासवर्ड डालने की ज़रूरत नहीं पड़ती. साथ ही, आईडीपी पर एपीआई कोटा और रेट लिमिट से जुड़ी जांच से बचा जा सकता है.
  2. दूसरा, signInWithCredential के लिए टोकन के बजाय, लिटरल JSON स्ट्रिंग का इस्तेमाल करें. उदाहरण के तौर पर वेब SDK टूल का इस्तेमाल करके, कोड को इनमें बदला जा सकता है:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
  '{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));

एम्युलेटर के साथ इस्तेमाल किए जाने पर, यह कोड उपयोगकर्ता की Google पर foo@example.com ईमेल से पुष्टि करेगा. सब-फ़ील्ड को प्राथमिक कुंजी के तौर पर देखें, जिसे अलग-अलग उपयोगकर्ताओं के साइन इन करने का मज़ाक़ बनाते हुए, किसी भी स्ट्रिंग में बदला जा सकता है. firebase.auth.GoogleAuthProvider को new firebase.auth.OAuthProvider('yahoo.com') से या सेवा देने वाली किसी अन्य कंपनी के आईडी से बदला जा सकता है.

एम्युलेट किए गए कस्टम टोकन की पुष्टि करने की सुविधा

पुष्टि करने वाला एम्युलेटर, JSON वेब टोकन की मदद से पुष्टि करने का काम करता है. इसके लिए, यह ज़रूरी है कि काम करने वाले प्लैटफ़ॉर्म पर signInWithCustomToken तरीके को कॉल करके पुष्टि की जा रही हो. इस बारे में प्रोडक्शन की पुष्टि करने वाले दस्तावेज़ में बताया गया है.

पुष्टि करने वाला एम्युलेटर, प्रोडक्शन से कैसे अलग है

Firebase ऑथेंटिकेशन एम्युलेटर, प्रोडक्शन प्रॉडक्ट की कई सुविधाओं को सिम्युलेट करता है. हालांकि, पुष्टि करने का किसी भी तरह का सिस्टम, कई लेवल (डिवाइस, तीसरे पक्ष की सेवा देने वाली कंपनियां, Firebase वगैरह) की सुरक्षा पर बहुत ज़्यादा निर्भर करता है. इसलिए, एम्युलेटर के लिए सभी फ़्लो को सही तरीके से फिर से बनाना मुश्किल है.

Cloud IAM

Firebase Emulator Suite, दौड़ने के लिए किसी भी IAM से जुड़े व्यवहार को दोहराने या उनका पालन करने की कोशिश नहीं करता. एम्युलेटर, Firebase के सुरक्षा के लिए बताए गए नियमों का पालन करते हैं. हालांकि, आम तौर पर ऐसी स्थितियों में जहां IAM का इस्तेमाल होता है, जैसे कि Cloud Functions के लिए, सेवा खाते और अनुमतियों को सेट करने के लिए, एम्युलेटर को कॉन्फ़िगर नहीं किया जा सकता. साथ ही, वह आपकी डेवलपर मशीन पर दुनिया भर में उपलब्ध खाते का इस्तेमाल करेगा. यह ठीक वैसा ही है जैसे सीधे तौर पर स्थानीय स्क्रिप्ट चलाने के लिए किया जाता है.

मोबाइल प्लैटफ़ॉर्म पर, ईमेल से साइन इन करने के लिए Firebase डाइनैमिक लिंक का इस्तेमाल किया जाता है. इसलिए, ऐसे सभी लिंक (मोबाइल) वेब प्लैटफ़ॉर्म पर खोले जाएंगे.

तीसरे पक्ष की मदद से साइन-इन

तीसरे पक्ष के साइन-इन फ़्लो के लिए, Firebase से पुष्टि करने की सुविधा, Twitter और GitHub जैसे तीसरे पक्ष की सेवा देने वाली कंपनियों के सुरक्षित क्रेडेंशियल पर निर्भर करती है.

Google और Apple जैसे Notebook Connect की सेवा देने वाली कंपनियों के असली क्रेडेंशियल, पुष्टि करने वाले एम्युलेटर के तौर पर स्वीकार किए जाते हैं. उन कंपनियों के क्रेडेंशियल इस्तेमाल नहीं किए जा सकते जो OpenID Connect से नहीं जुड़ी हैं.

ईमेल / एसएमएस से साइन इन

प्रोडक्शन ऐप्लिकेशन में, ईमेल और मैसेज (एसएमएस) साइन-इन फ़्लो में एक एसिंक्रोनस ऑपरेशन शामिल होता है. इसमें उपयोगकर्ता को मिले मैसेज की जांच करता है और साइन-इन इंटरफ़ेस में लॉगिन कोड डालता है. पुष्टि करने वाला एम्युलेटर, कोई ईमेल या एसएमएस नहीं भेजता है. हालांकि, जैसा कि ऊपर बताया गया है, वह लॉगिन कोड जनरेट करता है और उन्हें टेस्टिंग में इस्तेमाल करने के लिए टर्मिनल पर आउटपुट करता है.

एम्युलेटर, तय लॉगिन कोड वाले टेस्ट फ़ोन नंबर तय करने की सुविधा नहीं देता, जैसा कि Firebase कंसोल का इस्तेमाल करके किया जा सकता है.

कस्टम टोकन की पुष्टि करने की सुविधा

पुष्टि करने वाला एम्युलेटर, कस्टम टोकन के हस्ताक्षर या उनकी समयसीमा खत्म होने की पुष्टि नहीं करता है. इससे आपको हाथ से बनाए गए टोकन का इस्तेमाल करने और टोकन का फिर से इस्तेमाल करने की सुविधा मिलती है. ये टोकन, प्रोटोटाइपिंग और टेस्टिंग में कभी भी इस्तेमाल किए जा सकते हैं.

डेटा के गलत इस्तेमाल को रोकने / डेटा के गलत इस्तेमाल को रोकने की नीति

पुष्टि करने वाला एम्युलेटर, प्रोडक्शन रेट को सीमित करने या गलत इस्तेमाल को रोकने वाली सुविधाओं की नकल नहीं करता.

ब्लॉक करने वाले फ़ंक्शन

प्रोडक्शन में, beforeCreate और beforeSignIn, दोनों इवेंट ट्रिगर होने के बाद उपयोगकर्ताओं को एक बार स्टोरेज में सेव किया जाता है. हालांकि, तकनीकी सीमाओं की वजह से, पुष्टि करने वाला एम्युलेटर, दो बार सेव करने के लिए लिखता है. पहला, उपयोगकर्ता के बनाए जाने के बाद और दूसरा, साइन इन करने के बाद. इसका मतलब है कि नए उपयोगकर्ताओं के लिए, पुष्टि करने वाले एम्युलेटर में beforeSignIn में getAuth().getUser() को कॉल किया जा सकता है. हालांकि, प्रोडक्शन के दौरान आपको कोई गड़बड़ी मिलेगी.

आगे क्या करना है?