अपने ऐप्लिकेशन को 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 प्रोजेक्ट बनाए बिना ही एमुलेटर चलाए जा सकते हैं
- बेहतर सुरक्षा, क्योंकि अगर आपका कोड गलती से ऐसे संसाधन शुरू कर देता है जो सिम्युलेट नहीं किए गए (प्रोडक्शन) हैं, तो डेटा को बदलने, इस्तेमाल करने, और बिलिंग करने की कोई गुंजाइश नहीं होती
- बेहतर ऑफ़लाइन सहायता, क्योंकि SDK टूल का कॉन्फ़िगरेशन डाउनलोड करने के लिए, इंटरनेट का ऐक्सेस ज़रूरी नहीं है.
एम्युलेटर से बात करने के लिए, अपने ऐप्लिकेशन को इंस्टॉल करें
Android, Apple प्लैटफ़ॉर्म, और वेब SDK टूल
Cloud Storage for Firebase एम्युलेटर के साथ इंटरैक्ट करने के लिए, अपना इन-ऐप्लिकेशन कॉन्फ़िगरेशन या टेस्ट क्लास सेट अप करें. इसके बारे में, नीचे बताया गया है.
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 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)
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 Storage for Firebase इवेंट से ट्रिगर किए गए Cloud फ़ंक्शन की जांच करने के लिए, किसी अन्य सेटअप की ज़रूरत नहीं होती. जब Cloud Storage for Firebase और Cloud Functions एमुलेटर, दोनों एक साथ काम कर रहे हों, तो वे अपने-आप एक साथ काम करते हैं.
Admin SDK सेकंड
FIREBASE_STORAGE_EMULATOR_HOST
एनवायरमेंट वैरिएबल सेट होने पर, Firebase Admin SDK अपने-आप Cloud Storage for Firebase एमुलेटर से कनेक्ट हो जाते हैं:
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 में, एडमिन SDK के लिए एनवायरमेंट वैरिएबल अपने-आप सेट हो जाएगा.
अगर आपको अपने Admin SDK कोड को किसी ऐसे शेयर किए गए एमुलेटर से कनेक्ट करना है जो किसी दूसरे एनवायरमेंट में चल रहा है, तो आपको वही प्रोजेक्ट आईडी डालना होगा जिसे आपने Firebase CLI का इस्तेमाल करके सेट किया था.
आपके पास किसी प्रोजेक्ट आईडी को सीधे 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 एपीआई के प्लैटफ़ॉर्म का इस्तेमाल करते हैं. हालांकि, इस एपीआई के सभी एंडपॉइंट को एमुलेट नहीं किया जाता. आम तौर पर, क्लाइंट SDK टूल से जो भी काम किए जा सकते हैं (फ़ाइलें अपलोड या मिटाना, मेटाडेटा पाना और सेट करना), उन्हें एडमिन SDK टूल से भी किया जा सकता है. हालांकि, इसके अलावा कोई भी काम नहीं किया जा सकता. जिन चीज़ों पर यह सुविधा लागू नहीं होती उनके बारे में यहां बताया गया है.
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 Objects API से,
इन तरीकों का इस्तेमाल किया जा सकता है:
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 एमुलेटर ट्रेनिंग प्लेलिस्ट देखें.
- ट्रिगर किए गए फ़ंक्शन, आम तौर पर Cloud Storage for Firebase के साथ इंटिग्रेशन होते हैं. इसलिए, फ़ंक्शन को स्थानीय तौर पर चलाएं पर जाकर, Cloud Functions for Firebase एम्युलेटर के बारे में ज़्यादा जानें.