अपने ऐप्लिकेशन को Cloud Storage for Firebase एम्युलेटर से कनेक्ट करने से पहले, पक्का करें कि आपको पूरे Firebase Local Emulator Suite वर्कफ़्लोके बारे में पता हो . साथ ही, आपने Local Emulator Suiteको इंस्टॉल और कॉन्फ़िगर कर लिया हो . इसके अलावा, आपने इसके सीएलआई कमांडकी समीक्षा कर ली हो.
कोई Firebase प्रोजेक्ट चुनें
Firebase Local Emulator Suite एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट की नकल करता है.
इस्तेमाल करने के लिए प्रोजेक्ट चुनने के लिए, एम्युलेटर शुरू करने से पहले, अपनी वर्किंग डायरेक्ट्री में सीएलआई में firebase use चलाएं. इसके अलावा, हर एम्युलेटर
कमांड में --project फ़्लैग पास किया जा सकता है.
Local Emulator Suite असली Firebase प्रोजेक्ट और डेमो प्रोजेक्ट की नकल कर सकता है.
| प्रोजेक्ट का टाइप | सुविधाएं | एम्युलेटर के साथ इस्तेमाल करना |
|---|---|---|
| असली |
असली Firebase प्रोजेक्ट वह होता है जिसे आपने बनाया और कॉन्फ़िगर किया है. आम तौर पर, इसे Firebase कंसोल के ज़रिए बनाया और कॉन्फ़िगर किया जाता है. असली प्रोजेक्ट में लाइव संसाधन होते हैं. जैसे, डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन या कोई अन्य संसाधन जिसे आपने उस Firebase प्रोजेक्ट के लिए सेट अप किया है. |
असली Firebase प्रोजेक्ट के साथ काम करते समय, आपके पास किसी भी या सभी सपोर्टेड प्रॉडक्ट के लिए एम्युलेटर चलाने का विकल्प होता है. जिन प्रॉडक्ट के लिए एम्युलेटर नहीं चलाए जा रहे हैं उनके लिए, आपके ऐप्लिकेशन और कोड, लाइव संसाधन (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन वगैरह) के साथ इंटरैक्ट करेंगे. |
| डेमो |
डेमो Firebase प्रोजेक्ट में, असली Firebase कॉन्फ़िगरेशन और कोई लाइव संसाधन नहीं होते. आम तौर पर, इन प्रोजेक्ट को कोडलैब या अन्य ट्यूटोरियल के ज़रिए ऐक्सेस किया जाता है. डेमो प्रोजेक्ट के प्रोजेक्ट आईडी में |
डेमो Firebase प्रोजेक्ट के साथ काम करते समय, आपके ऐप्लिकेशन और कोड एम्युलेटर सिर्फ़ के साथ इंटरैक्ट करते हैं. अगर आपका ऐप्लिकेशन किसी ऐसे संसाधन के साथ इंटरैक्ट करने की कोशिश करता है जिसके लिए एम्युलेटर नहीं चल रहा है, तो वह कोड काम नहीं करेगा. |
हमारा सुझाव है कि जहां भी मुमकिन हो वहां डेमो प्रोजेक्ट का इस्तेमाल करें. इसके फ़ायदे यहां दिए गए हैं:
- सेटअप करना आसान है, क्योंकि Firebase प्रोजेक्ट बनाए बिना भी एम्युलेटर चलाए जा सकते हैं
- ज़्यादा सुरक्षा मिलती है, क्योंकि अगर आपका कोड गलती से ऐसे संसाधनों को कॉल करता है जिनके लिए एम्युलेटर नहीं चल रहा है (प्रोडक्शन), तो डेटा में बदलाव, इस्तेमाल, और बिलिंग की कोई संभावना नहीं होती
- ऑफ़लाइन बेहतर तरीके से काम करता है, क्योंकि एसडीके कॉन्फ़िगरेशन डाउनलोड करने के लिए इंटरनेट ऐक्सेस करने की ज़रूरत नहीं होती.
एम्युलेटर के साथ इंटरैक्ट करने के लिए, अपने ऐप्लिकेशन को इंस्ट्रूमेंट करें
Android, Apple प्लैटफ़ॉर्म, और वेब एसडीके
Cloud Storage for Firebaseएम्युलेटर के साथ इंटरैक्ट करने के लिए, अपने ऐप्लिकेशन में कॉन्फ़िगरेशन या टेस्ट क्लास को इस तरह सेट अप करें.
Kotlin
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. val storage = Firebase.storage storage.useEmulator("10.0.2.2", 9199)
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseStorage storage = FirebaseStorage.getInstance(); storage.useEmulator("10.0.2.2", 9199);
Swift
Storage.storage().useEmulator(withHost: "127.0.0.1", port: 9199)
Unity
FirebaseStorage storage = FirebaseStorage.DefaultInstance; // Connects to the Storage Emulator running on port 9199 storage.UseEmulator("127.0.0.1", 9199);
Web
const { getStorage, connectStorageEmulator } = require("firebase/storage"); const storage = getStorage(); if (location.hostname === "localhost") { // Point to the Storage emulator running on localhost. connectStorageEmulator(storage, "127.0.0.1", 9199); }
Web
var storage = firebase.storage(); if (location.hostname === "localhost") { // Point to the Storage emulator running on localhost. storage.useEmulator("127.0.0.1", 9199); }
एम्युलेटर का इस्तेमाल करके, Cloud Functions की जांच करने के लिए, Cloud Storage for Firebase इवेंट से ट्रिगर होने वाले किसी अन्य सेटअप की ज़रूरत नहीं होती. जब Cloud Storage for Firebase और Cloud Functions एम्युलेटर, दोनों के चलने पर, वे अपने-आप एक साथ काम करते हैं.
Admin SDKs
Firebase Admin SDKs एनवायरमेंट वैरिएबल सेट होने पर, Cloud Storage for Firebase
एम्युलेटर से अपने-आप कनेक्ट हो जाते हैं:FIREBASE_STORAGE_EMULATOR_HOST
export FIREBASE_STORAGE_EMULATOR_HOST="127.0.0.1:9199"
ध्यान दें कि Cloud Functions एम्युलेटर को Cloud Storage for Firebase एम्युलेटर के बारे में अपने-आप पता होता है. इसलिए, Cloud Functions और Cloud Storage for Firebase एम्युलेटर के बीच इंटिग्रेशन की जांच करते समय, इस चरण को छोड़ा जा सकता है. एडमिन एसडीके के लिए एनवायरमेंट वैरिएबल अपने-आप सेट हो जाएगा Cloud Storage for Firebase में.
अगर आपको अपने Admin SDK कोड को किसी दूसरे एनवायरमेंट में चल रहे शेयर किए गए एम्युलेटर से कनेक्ट करना है, तो आपको वही प्रोजेक्ट आईडी बताना होगा जिसे आपने Firebase सीएलआई का इस्तेमाल करके सेट किया है.
initializeApp में सीधे तौर पर प्रोजेक्ट आईडी पास किया जा सकता है या GCLOUD_PROJECT एनवायरमेंट वैरिएबल सेट किया जा सकता है.
Node.js Admin SDK
admin.initializeApp({ projectId: "your-project-id" });
एनवायरमेंट वैरिएबल
export GCLOUD_PROJECT="your-project-id"
डेटा इंपोर्ट और एक्सपोर्ट करना
डेटाबेस और Cloud Storage for Firebase एम्युलेटर की मदद से, चालू एम्युलेटर इंस्टेंस से डेटा एक्सपोर्ट किया जा सकता है. यूनिट टेस्ट या लगातार इंटिग्रेशन वर्कफ़्लो में इस्तेमाल करने के लिए, डेटा का बेसलाइन सेट तय करें. इसके बाद, इसे टीम के साथ शेयर करने के लिए एक्सपोर्ट करें.
firebase emulators:export ./dirटेस्ट में, एम्युलेटर शुरू होने पर, बेसलाइन डेटा इंपोर्ट करें.
firebase emulators:start --import=./dirएम्युलेटर को बंद होने पर डेटा एक्सपोर्ट करने का निर्देश दिया जा सकता है. इसके लिए, एक्सपोर्ट पाथ तय किया जा सकता है या --import फ़्लैग में पास किए गए पाथ का इस्तेमाल किया जा सकता है.
firebase emulators:start --import=./dir --export-on-exitडेटा इंपोर्ट और एक्सपोर्ट करने के ये विकल्प, firebase emulators:exec कमांड के साथ भी काम करते हैं. ज़्यादा जानकारी के लिए, एम्युलेटर कमांड रेफ़रंस देखें.
Cloud Storage for Firebase एम्युलेटर, प्रोडक्शन से कैसे अलग है
क्लाइंट ऐप्लिकेशन की जांच के लिए, Cloud Storage for Firebase एम्युलेटर, प्रोडक्शन के हिसाब से, Firebase API के सर्फ़ेस एरिया के मामले में लगभग पूरी तरह से काम करता है. उम्मीद है कि सभी Firebase कमांड, सामान्य Firebase SDK (वेब, Android, और Apple प्लैटफ़ॉर्म) के साथ काम करेंगे.
सर्वर-साइड ऐप्लिकेशन की जांच के लिए, कुछ सीमाएं हैं. Firebase Admin SDK Google Cloud API के सर्फ़ेस का इस्तेमाल करते हैं. इस एपीआई के सभी एंडपॉइंट की नकल नहीं की जाती. आम तौर पर, क्लाइंट एसडीके की मदद से जो भी काम किया जा सकता है (फ़ाइलें अपलोड या मिटाना, मेटाडेटा पाना और सेट करना), उसे एडमिन एसडीके की मदद से भी किया जा सकता है. हालांकि, इसके अलावा कोई और काम नहीं किया जा सकता. यहां, उन कामों की सूची दी गई है जो एडमिन एसडीके की मदद से नहीं किए जा सकते.
Google Cloud Storage से अंतर
Cloud Storage for Firebase प्रॉडक्ट, जिसमें स्टोरेज एम्युलेटर भी शामिल है, Google Cloud Storage (GCS) की सुविधाओं का सबसेट उपलब्ध कराता है. इसका फ़ोकस, स्टोरेज ऑब्जेक्ट पर होता है. यह Firebase ऐप्लिकेशन डेवलप करने के लिए बहुत काम का है. Cloud Storage for Firebase GCS से इन मामलों में अलग है:
- Cloud Storage for Firebase फ़िलहाल, स्टोरेज बकेट बनाने, सूची बनाने, पाने या मिटाने के लिए
Bucketएपीआई के साथ काम नहीं करता है. - Google Cloud Storage ऑब्जेक्ट एपीआई से,
इन तरीकों का इस्तेमाल किया जा सकता है:
copy,delete,get,insert,list,patch,rewrite,update.
Cloud IAM
Firebase Emulator Suite, चलाने के लिए, IAM से जुड़े किसी भी व्यवहार की नकल नहीं करता या उसका पालन नहीं करता. एम्युलेटर, दिए गए Firebase सुरक्षा के नियमों का पालन करते हैं. हालांकि, उन स्थितियों में जहां आम तौर पर IAM का इस्तेमाल किया जाता है, जैसे कि Cloud Functions को कॉल करने वाले सेवा खाते और इस तरह अनुमतियां सेट करने के लिए, एम्युलेटर को कॉन्फ़िगर नहीं किया जा सकता. साथ ही, यह आपके डेवलपर मशीन पर दुनिया भर में उपलब्ध खाते का इस्तेमाल करेगा. यह ठीक उसी तरह होगा जैसे किसी स्थानीय स्क्रिप्ट को सीधे तौर पर चलाया जाता है.
Pub/Sub सूचनाएं
Cloud Storage for Firebase एम्युलेटर, Cloud Pub/Sub एम्युलेटर के साथ इंटिग्रेट नहीं होता. इसलिए, यह स्टोरेज ऑब्जेक्ट में होने वाले बदलावों के लिए चैनल/सूचनाएं बनाने की सुविधा नहीं देता. हमारा सुझाव है कि Cloud Functions स्टोरेज ट्रिगर का सीधे तौर पर इस्तेमाल करें.
बकेट-लेवल का मेटाडेटा
Cloud Storage for Firebase एम्युलेटर, बकेट-लेवल के किसी भी कॉन्फ़िगरेशन के साथ काम नहीं करता. इसमें स्टोरेज क्लास, बकेट-लेवल का सीओआरएस कॉन्फ़िगरेशन, लेबल, या डेटा बनाए रखने की नीतियां शामिल हैं. Firebase, समय के साथ इस सुविधा को बेहतर बनाने की कोशिश कर रहा है.
इसके बाद क्या करना है?
- वीडियो के चुने गए सेट और सिलसिलेवार तरीके से निर्देश देने वाले उदाहरणों के लिए, Firebase Emulators ट्रेनिंग प्लेलिस्ट देखें.
- ट्रिगर किए गए फ़ंक्शन, Cloud Storage for Firebase के साथ इंटिग्रेशन का एक सामान्य तरीका है. इसलिए, Cloud Functions for Firebase एम्युलेटर के बारे में ज़्यादा जानने के लिए, स्थानीय तौर पर फ़ंक्शन चलाना लेख पढ़ें.