Catch up on everthing we announced at this year's Firebase Summit. Learn more

अपना ऐप कनेक्ट करें और प्रोटोटाइप शुरू करें

इससे पहले कि आप Firebase स्थानीय एम्यूलेटर सुइट के साथ में कूद, सुनिश्चित करें कि आपके मंच के लिए Firebase विषयों के साथ आरंभ करने के लिए अनुसार आप एक Firebase परियोजना बनाने के बाद, अपने विकास के वातावरण की स्थापना की, और चयनित करें और अपने मंच के लिए Firebase SDKs स्थापित कर एप्पल , एंड्रॉयड या वेब

प्रोटोटाइप और परीक्षण

स्थानीय एम्यूलेटर सुइट कई उत्पाद emulators, में के रूप में वर्णित होता है Firebase स्थानीय एम्यूलेटर सुइट का परिचय । आप अलग-अलग अनुकरणकर्ताओं के साथ-साथ अनुकरणकर्ताओं के संयोजन के साथ प्रोटोटाइप और परीक्षण कर सकते हैं, जैसा कि आप फिट देखते हैं, जो आप उत्पादन में उपयोग किए जा रहे फायरबेस उत्पादों के अनुरूप हैं।

Firebase dstabase और फ़ंक्शन एमुलेटर के बीच सहभागिता
के हिस्से के रूप डाटाबेस और क्लाउड कार्य emulators पूर्ण स्थानीय एम्यूलेटर सुइट

इस विषय के लिए, स्थानीय एम्यूलेटर सूट वर्कफ़्लो को पेश करने के लिए, मान लें कि आप एक ऐसे ऐप पर काम कर रहे हैं जो उत्पादों के एक विशिष्ट संयोजन का उपयोग करता है: एक फायरबेस डेटाबेस और उस डेटाबेस पर संचालन द्वारा ट्रिगर किए गए क्लाउड फ़ंक्शन।

अपने Firebase प्रोजेक्ट को स्थानीय रूप से प्रारंभ करने के बाद, स्थानीय एमुलेटर सूट का उपयोग करने वाले विकास चक्र में आमतौर पर तीन चरण होंगे:

  1. प्रोटोटाइप एमुलेटर और एमुलेटर सूट UI के साथ अंतःक्रियात्मक रूप से सुविधाएँ देता है।

  2. यदि आप डेटाबेस एमुलेटर या क्लाउड फ़ंक्शंस एमुलेटर का उपयोग कर रहे हैं, तो अपने ऐप को एमुलेटर से कनेक्ट करने के लिए एक बार का कदम उठाएं।

  3. एमुलेटर और कस्टम स्क्रिप्ट के साथ अपने परीक्षणों को स्वचालित करें।

स्थानीय रूप से एक फायरबेस प्रोजेक्ट प्रारंभ करें

सुनिश्चित करें कि आप सुनिश्चित CLI स्थापित या अपने नवीनतम संस्करण में अपडेट

curl -sL firebase.tools | bash

यदि आपने ऐसा नहीं किया है, तो एक Firebase परियोजना के रूप में वर्तमान कार्यशील निर्देशिका को प्रारंभ, आप बादल कार्य और या तो बादल Firestore या वास्तविक समय डेटाबेस का उपयोग कर रहे निर्दिष्ट करने के लिए स्क्रीन पर दिए निर्देशों का पालन:

firebase init

अपनी परियोजना निर्देशिका अब Firebase विन्यास फाइल, डेटाबेस के लिए एक Firebase सुरक्षा नियम परिभाषा फ़ाइल, एक में शामिल होंगे functions निर्देशिका युक्त बादल कार्यों कोड, और अन्य समर्थक फ़ाइलें।

अंतःक्रियात्मक रूप से प्रोटोटाइप

स्थानीय एमुलेटर सूट आपको नई सुविधाओं को जल्दी से प्रोटोटाइप करने के लिए डिज़ाइन किया गया है, और सूट का अंतर्निहित यूजर इंटरफेस इसके सबसे उपयोगी प्रोटोटाइप टूल में से एक है। यह फ़ायरबेस कंसोल को स्थानीय रूप से चलाने जैसा है।

एम्यूलेटर सूट यूआई का उपयोग करके, आप डेटाबेस के डिज़ाइन को पुनरावृत्त कर सकते हैं, क्लाउड फ़ंक्शंस से जुड़े विभिन्न डेटाफ़्लो आज़मा सकते हैं, सुरक्षा नियमों में बदलाव का मूल्यांकन कर सकते हैं, यह पुष्टि करने के लिए लॉग की जाँच कर सकते हैं कि आपकी बैक-एंड सेवाएँ कैसा प्रदर्शन कर रही हैं, और बहुत कुछ। फिर, यदि आप फिर से शुरू करना चाहते हैं, तो बस अपना डेटाबेस साफ़ करें और एक नए डिज़ाइन विचार के साथ नए सिरे से शुरुआत करें।

जब आप इसके साथ स्थानीय एमुलेटर सूट शुरू करते हैं तो यह सब उपलब्ध होता है:

firebase emulators:start

हमारे काल्पनिक ऐप को प्रोटोटाइप करने के लिए, आइए डेटाबेस में टेक्स्ट प्रविष्टियों को संशोधित करने के लिए एक बुनियादी क्लाउड फ़ंक्शन को सेट अप और परीक्षण करें, और इसे ट्रिगर करने के लिए एमुलेटर सूट UI में उस डेटाबेस को बनाएं और पॉप्युलेट करें।

  1. संपादन करके एक बादल समारोह डेटाबेस लेखन से शुरू हो रहा बनाएं functions/index.js अपनी परियोजना निर्देशिका में फ़ाइल। मौजूदा फ़ाइल की सामग्री को निम्न स्निपेट से बदलें। में दस्तावेज़ों में परिवर्तन के लिए इस समारोह सुनता messages संग्रह, एक दस्तावेज के की सामग्री को धर्मान्तरित original है कि दस्तावेज़ के दशक में परिणाम अपरकेस करने के लिए क्षेत्र, और दुकानों uppercase क्षेत्र।
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. साथ स्थानीय एम्यूलेटर सुइट लॉन्च firebase emulators:start । क्लाउड फ़ंक्शंस और डेटाबेस एमुलेटर शुरू होते हैं, स्वचालित रूप से इंटरऑपरेट करने के लिए कॉन्फ़िगर किए जाते हैं।
  4. पर आपके ब्राउज़र में यूआई देखें http://localhost:4000 । पोर्ट 4000 यूआई के लिए डिफ़ॉल्ट है, लेकिन फायरबेस सीएलआई द्वारा टर्मिनल संदेश आउटपुट की जांच करें। उपलब्ध एमुलेटर की स्थिति पर ध्यान दें। हमारे मामले में, क्लाउड फ़ंक्शंस और क्लाउड फायरस्टोर एमुलेटर चल रहे होंगे।
    मेरी छवि
  5. UI में, इस firestore टैब पर, डेटा उप टैब पर, प्रारंभ संग्रह क्लिक करें और एक में एक नया दस्तावेज़ बनाने के लिए संकेतों का पालन messages FIELDNAME साथ संग्रह, original और मूल्य test । यह हमारे क्लाउड फ़ंक्शन को ट्रिगर करता है। का निरीक्षण करें एक नया है कि uppercase क्षेत्र शीघ्र ही प्रकट होता है, स्ट्रिंग "टेस्ट" के साथ आबादी।
    मेरी छविमेरी छवि
  6. इस firestore पर> अनुरोध टैब, जांच सब Firebase सुरक्षा नियमों के मूल्यांकन सहित अपने नकल डेटाबेस, से किए गए अनुरोधों उन अनुरोधों को पूरा करने के भाग के रूप में प्रदर्शन किया।
  7. के रूप में यह डेटाबेस अद्यतन अपने कार्य पुष्टि करने के लिए त्रुटियों में नहीं चला लॉग्स टैब की जाँच करें।

आप अपने क्लाउड फ़ंक्शन कोड और इंटरेक्टिव डेटाबेस संपादनों के बीच आसानी से पुनरावृति कर सकते हैं, जब तक कि आपको वह डेटा प्रवाह नहीं मिल जाता, जिसकी आप तलाश कर रहे हैं, इन-ऐप डेटाबेस एक्सेस कोड को छुए बिना, परीक्षण सूट को फिर से संकलित और फिर से चलाना।

अपने ऐप को एमुलेटर से कनेक्ट करें

जब आपने इंटरेक्टिव प्रोटोटाइप के साथ अच्छी प्रगति की है और एक डिज़ाइन पर बस गए हैं, तो आप उपयुक्त एसडीके का उपयोग करके अपने ऐप में डेटाबेस एक्सेस कोड जोड़ने के लिए तैयार होंगे। आप डेटाबेस टैब का उपयोग करके रखेंगे और, कार्यों के लिए, एम्यूलेटर सुइट यूआई में लॉग्स टैब पुष्टि करते हैं कि आपके एप्लिकेशन के व्यवहार सही है।

याद रखें कि स्थानीय एमुलेटर सूट एक स्थानीय विकास उपकरण है। आपके उत्पादन डेटाबेस को लिखने से उन कार्यों को ट्रिगर नहीं किया जाएगा जिन्हें आप स्थानीय रूप से प्रोटोटाइप कर रहे हैं।

अपने ऐप को डेटाबेस में लिखने के लिए स्विच करने के लिए, आपको क्लाउड फायरस्टोर एमुलेटर पर अपनी टेस्ट क्लास या इन-ऐप कॉन्फ़िगरेशन को इंगित करना होगा।

एंड्रॉयड
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFirestore firestore = FirebaseFirestore.getInstance();
        firestore.useEmulator("10.0.2.2", 8080);

        FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
                .setPersistenceEnabled(false)
                .build();
        firestore.setFirestoreSettings(settings);
तीव्र
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

वेब संस्करण 9

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, 'localhost', 8080);

वेब संस्करण 8

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}
वेब
// Initialize your Web app as described in the Get started for Web
// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

कस्टम स्क्रिप्ट के साथ अपने परीक्षण स्वचालित करें

अब अंतिम समग्र कार्यप्रवाह चरण के लिए। एक बार जब आप ऐप में अपनी सुविधा का प्रोटोटाइप बना लेते हैं और यह आपके सभी प्लेटफॉर्म पर आशाजनक लगती है, तो आप अंतिम कार्यान्वयन और परीक्षण की ओर रुख कर सकते हैं। इकाई परीक्षण के लिए और सीआई कार्यप्रवाह वैसे, आप, emulators शुरू पटकथा परीक्षण चलाने के लिए, और के साथ एक एकल कॉल में emulators को शट डाउन कर सकते हैं exec आदेश:

firebase emulators:exec "./testdir/test.sh"

अलग-अलग एमुलेटर का अधिक गहराई से अन्वेषण करें

अब जब आपने देख लिया है कि मूल क्लाइंट-साइड वर्कफ़्लो कैसा दिखता है, तो आप सर्वर-साइड ऐप डेवलपमेंट के लिए उनका उपयोग करने के तरीके सहित सूट में अलग-अलग एमुलेटर के बारे में विवरण जारी रख सकते हैं:

आगे क्या?

ऊपर लिंक किए गए विशिष्ट एमुलेटर से संबंधित विषयों को पढ़ना सुनिश्चित करें। फिर: