了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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

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

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

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

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

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

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

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

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

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

स्थानीय रूप से एक Firebase प्रोजेक्ट को इनिशियलाइज़ करें

सुनिश्चित करें कि आपने सीएलआई स्थापित किया है या इसके नवीनतम संस्करण में अपडेट किया है

curl -sL firebase.tools | bash

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

firebase init

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

प्रोटोटाइप इंटरैक्टिव

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

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

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

firebase emulators:start

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

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

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

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

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

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

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

Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
val database = Firebase.database
database.useEmulator("10.0.2.2", 9000)
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseDatabase database = FirebaseDatabase.getInstance();
database.useEmulator("10.0.2.2", 9000);
तीव्र
    // In almost all cases the ns (namespace) is your project ID.
let db = Database.database(url:"http://localhost:9000?ns=YOUR_DATABASE_NAMESPACE")

Web version 9

import { getDatabase, connectDatabaseEmulator } from "firebase/database";

const db = getDatabase();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  connectDatabaseEmulator(db, "localhost", 9000);
} 

Web version 8

var db = firebase.database();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  db.useEmulator("localhost", 9000);
} 

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

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

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

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

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

आगे क्या?

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