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


Firebase Local Emulator Suite के साथ आगे बढ़ने से पहले, पक्का करें कि आपने आपने Firebase प्रोजेक्ट चुना होगा, अपना डेवलपमेंट एनवायरमेंट सेट अप किया होगा, और के मुताबिक अपने प्लैटफ़ॉर्म के लिए Firebase SDK टूल इंस्टॉल किए गए हैं आपके प्लैटफ़ॉर्म के लिए Firebase के विषय: Apple, Android या वेब.

प्रोटोटाइप बनाना और जांच करना

Local Emulator Suite में कई प्रॉडक्ट एम्युलेटर मौजूद हैं. इनके बारे में यहां बताया गया है Firebase Local Emulator Suite के बारे में जानकारी. आपके पास हर एक एम्युलेटर के साथ-साथ, इसके कॉम्बिनेशन की मदद से प्रोटोटाइप बनाने और उनकी जांच करने का विकल्प होता है इस्तेमाल किए जा रहे Firebase प्रॉडक्ट के हिसाब से एम्युलेटर. प्रोडक्शन में है.

Firebase डेटाबेस और फ़ंक्शन एम्युलेटर के बीच इंटरैक्शन
डेटाबेस और Cloud Functions एम्युलेटर पूरा Local Emulator Suite.

इस विषय के लिए, Local Emulator Suite वर्कफ़्लो की जानकारी देते समय, आप ऐसे ऐप्लिकेशन पर काम कर रहे हैं जो प्रॉडक्ट के किसी खास तरह के कॉम्बिनेशन का इस्तेमाल करता है: Firebase उस डेटाबेस पर कार्रवाइयों से ट्रिगर होने वाले डेटाबेस और क्लाउड फ़ंक्शन.

स्थानीय तौर पर अपना Firebase प्रोजेक्ट शुरू करने के बाद, डेवलपमेंट साइकल इसका इस्तेमाल करके आम तौर पर, Local Emulator Suite में तीन चरण होते हैं:

  1. एम्युलेटर और Emulator Suite UI के साथ, प्रोटोटाइप सुविधाएं इंटरैक्टिव तरीके से जोड़ी गई हैं.

  2. अगर डेटाबेस एम्युलेटर या Cloud Functions एम्युलेटर का इस्तेमाल किया जा रहा है, तो अपने ऐप्लिकेशन को एम्युलेटर से कनेक्ट करने के लिए, एक बार पूरा करें.

  3. एम्युलेटर और कस्टम स्क्रिप्ट का इस्तेमाल करके, अपने टेस्ट ऑटोमेट करें.

स्थानीय तौर पर Firebase प्रोजेक्ट शुरू करना

पक्का करें कि आपने सीएलआई इंस्टॉल किया हो या नए वर्शन में अपडेट करें.

curl -sL firebase.tools | bash

अगर आपने अभी तक ऐसा नहीं किया है, तो मौजूदा डायरेक्ट्री को Firebase प्रोजेक्ट, स्क्रीन पर दिए गए निर्देशों का पालन करके यह बताता है कि आप इसका इस्तेमाल कर रहे हैं Cloud Functions और Cloud Firestore या Realtime Database:

firebase init

आपकी प्रोजेक्ट डायरेक्ट्री में अब Firebase कॉन्फ़िगरेशन फ़ाइलें शामिल होंगी, डेटाबेस के लिए Firebase Security Rules डेफ़िनिशन फ़ाइल, एक functions डायरेक्ट्री जिसमें क्लाउड फ़ंक्शन कोड और काम करने वाली अन्य फ़ाइलें शामिल हों.

इंटरैक्टिव तरीके से प्रोटोटाइप बनाना

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

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

Local Emulator Suite की शुरुआत करने पर, ये सभी सुविधाएं उपलब्ध होती हैं:

firebase emulators:start

हमारे काल्पनिक ऐप्लिकेशन के प्रोटोटाइप को बनाने के लिए, आइए एक बेसिक क्लाउड फ़ंक्शन सेट अप और टेस्ट करते हैं का इस्तेमाल, डेटाबेस में टेक्स्ट एंट्री में बदलाव करने के लिए किया जाता है. साथ ही, उस डेटाबेस को बनाकर उसे अपने-आप भरा जाता है को ट्रिगर करने के लिए Emulator Suite UI में.

  1. डेटाबेस में बदलाव करके ट्रिगर किया गया क्लाउड फ़ंक्शन बनाएं functions/index.js फ़ाइल है. मौजूदा मौजूदा फ़ाइल की सामग्री निम्नलिखित स्निपेट के साथ यह फ़ंक्शन messages कलेक्शन में मौजूद दस्तावेज़ों में हुए बदलावों को सुनता है, दस्तावेज़ के original फ़ील्ड के कॉन्टेंट को इसमें बदलता है अपरकेस, नतीजे को उस दस्तावेज़ के uppercase में सेव करता है फ़ील्ड.
  2.   const functions = require('firebase-functions/v1');
    
      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. Local Emulator Suite को इससे लॉन्च करें firebase emulators:start. Cloud Functions और डेटाबेस एम्युलेटर शुरू हो जाते हैं, जो इंटरऑपरेट करने के लिए अपने-आप कॉन्फ़िगर होते हैं.
  4. अपने ब्राउज़र में http://localhost:4000 पर यूज़र इंटरफ़ेस (यूआई) देखें. यूज़र इंटरफ़ेस (यूआई) के लिए, पोर्ट 4000 डिफ़ॉल्ट तौर पर सेट होता है. हालांकि, टर्मिनल मैसेज आउटपुट को इसके हिसाब से देखें Firebase सीएलआई. उपलब्ध एम्युलेटर की स्थिति को नोट करें. हमारे मामले में, Cloud Functions और Cloud Firestore एम्युलेटर चलेंगे.
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है मेरी इमेज
  5. यूज़र इंटरफ़ेस (यूआई) में, Firestore > डेटा टैब पर क्लिक करें, कलेक्शन शुरू करें और दिए गए निर्देशों का पालन करके, messages कलेक्शन, जिसका फ़ील्ड नाम original और वैल्यू है test. यह हमारे क्लाउड फ़ंक्शन को ट्रिगर करता है. ध्यान दें कि एक नया uppercase फ़ील्ड जल्दी ही दिखता है और स्ट्रिंग में अपने-आप भर जाता है "टेस्ट".
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है मेरी इमेज मेरी इमेज
  6. Firestore > पर जाएं अनुरोध टैब पर क्लिक करके, अपने एम्युलेट किया गया डेटाबेस, जिसमें सभी Firebase Security Rules आकलन शामिल हैं उन अनुरोधों को पूरा करने के लिए किया जा सकता है.
  7. लॉग टैब देखकर पुष्टि करें कि आपके फ़ंक्शन में कोई गड़बड़ी नहीं हुई क्योंकि इसने डेटाबेस को अपडेट किया.

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

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

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

याद रखें कि Local Emulator Suite एक लोकल डेवलपमेंट टूल है. लिखना आपके डेटाबेस में, उन फ़ंक्शन को ट्रिगर नहीं करेगा जिनका प्रोटोटाइप बनाया जा रहा है स्थानीय रूप से.

अगर आप चाहते हैं कि आपका ऐप्लिकेशन डेटाबेस में बदलाव करे, तो आपको डेटाबेस में बदलाव करने होंगे आपके टेस्ट क्लास या ऐप्लिकेशन के अंदर कॉन्फ़िगरेशन को Cloud Firestore पर दिखाने के लिए एम्युलेटर.

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 firestore = Firebase.firestore
firestore.useEmulator("10.0.2.2", 8080)

firestore.firestoreSettings = firestoreSettings {
    isPersistenceEnabled = false
}
Java
// 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);
Swift
let settings = Firestore.firestore().settings
settings.host = "127.0.0.1:8080"
settings.cacheSettings = MemoryCacheSettings()
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web

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

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

Web

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("127.0.0.1", 8080);
}

कस्टम स्क्रिप्ट से अपने टेस्ट को ऑटोमेट करना

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

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

अलग-अलग एम्युलेटर के बारे में ज़्यादा जानें

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

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

ऊपर लिंक किए गए खास एम्युलेटर से जुड़े विषयों को ज़रूर पढ़ें. इसके बाद: