Cloud Functions शेल, शुरू करने के लिए एक इंटरैक्टिव शेल उपलब्ध कराता है टेस्ट डेटा वाले फ़ंक्शन. शेल, सभी तरह के ट्रिगर के साथ काम करता है.
एडमिन के क्रेडेंशियल सेट अप करें (ज़रूरी नहीं)
अगर आपको अपने फ़ंक्शन की जांच करने के लिए, Google API या अन्य Firebase का इस्तेमाल करना है Firebase एडमिन SDK के ज़रिए एपीआई का इस्तेमाल करने के लिए, आपको इन्हें सेट अप करना पड़ सकता है एडमिन के क्रेडेंशियल.
- Cloud Firestore और Realtime Database ट्रिगर में पहले से ही ज़रूरी क्रेडेंशियल होते हैं, इसलिए उन्हें अतिरिक्त सेटअप की ज़रूरत नहीं होती.
- Authentication और FCM जैसे Firebase API या Cloud Translation या Cloud Speech जैसे Google API के साथ-साथ अन्य सभी एपीआई को सेट अप करने के लिए, इस सेक्शन में बताए गए तरीके अपनाने ज़रूरी हैं. यह तब भी लागू होता है, जब Cloud Functions शेल का इस्तेमाल किया जा रहा हो या
firebase emulators:start
का.
सिम्युलेट किए गए फ़ंक्शन के लिए, एडमिन के क्रेडेंशियल सेट अप करने के लिए:
- खोलें सेवा खातों का पैनल Google Cloud कंसोल का इस्तेमाल किया जा सकता है.
- पक्का करें कि आपने App Engine का डिफ़ॉल्ट सेवा खाता चुना हो. साथ ही, इसका इस्तेमाल करें कुंजी बनाएं को चुनने के लिए, दाईं ओर मौजूद विकल्प मेन्यू.
- जब कहा जाए, तब कुंजी के टाइप के लिए JSON चुनें और बनाएं पर क्लिक करें.
अपने Google डिफ़ॉल्ट क्रेडेंशियल, डाउनलोड की गई कुंजी पर ले जाने के लिए सेट करें:
Unix
export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json" firebase functions:shell
शीशा
set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json firebase functions:shell
इन चरणों को पूरा करने के बाद, आपके फ़ंक्शन टेस्ट, Firebase और
एडमिन SDK का इस्तेमाल करने वाले Google API. उदाहरण के लिए, टेस्टिंग के दौरान
Authentication ट्रिगर, एम्युलेट किया गया फ़ंक्शन कॉल कर सकता है
admin.auth().getUserByEmail(email)
.
Cloud Functions शेल का इस्तेमाल करके फ़ंक्शन सर्व करें
Cloud Functions शेल, सभी तरह के फ़ंक्शन ट्रिगर को सिम्युलेट करता है इंटरैक्टिव शेल का इस्तेमाल करके, फ़ंक्शन को टेस्ट डेटा शुरू करने के लिए किया जा सकता है. विकल्प अलग-अलग हो सकते हैं फ़ंक्शन टाइप के हिसाब से है, लेकिन बुनियादी इस्तेमाल का फ़ॉर्मैट यह है:
myFunctionName(data, options)
रीयलटाइम डेटाबेस, Cloud Firestore के लिए data
पैरामीटर ज़रूरी है,
और PubSub ट्रिगर का इस्तेमाल करता है. साथ ही, अन्य सभी फ़ंक्शन टाइप के लिए ज़रूरी नहीं है.
साथ ही, वैकल्पिक options
पैरामीटर सिर्फ़ रीयलटाइम डेटाबेस के लिए मान्य है
और Cloud Firestore के फ़ंक्शन इस्तेमाल करने चाहिए.
इसके अलावा, टेस्ट डेटा को वैरिएबल के रूप में सेव करके और इसके साथ किसी फ़ंक्शन को शुरू करके:
var data = require('./path/to/testData.json');
myFunction(data);
Cloud Functions शेल इंस्टॉल और कॉन्फ़िगर करें
इस सुविधा का इस्तेमाल करने के लिए, firebase-tools
के पास कम से कम 3.11.0 वर्शन होना चाहिए, और
firebase-functions
SDK टूल का वर्शन कम से कम 0.6.2 होना चाहिए. दोनों को अपडेट करने के लिए,
अपने प्रोजेक्ट की functions/
डायरेक्ट्री में ये कमांड चलाएं:
npm install --save firebase-functions@latest
npm install -g firebase-tools
अगर कस्टम फ़ंक्शन कॉन्फ़िगरेशन वैरिएबल का इस्तेमाल किया जा रहा है, तो पहले
निर्देश दें, ताकि आपको अपनी पसंद के मुताबिक कॉन्फ़िगरेशन मिल सके (इसे functions
डायरेक्ट्री में चलाएं)
अपने स्थानीय वातावरण में:
firebase functions:config:get > .runtimeconfig.json # If using Windows PowerShell, replace the above with: # firebase functions:config:get | ac .runtimeconfig.json
अंत में, निम्न आदेश के साथ शेल चलाएं:
firebase functions:shell
एचटीटीपीएस फ़ंक्शन शुरू करें
शेल में एचटीटीपीएस फ़ंक्शन को शुरू करने के लिए, इनका इस्तेमाल वैसा ही होता है जैसा कि
request
NPM मॉड्यूल, लेकिन
request
का इस्तेमाल उस फ़ंक्शन के नाम के साथ करें जिसे आपको एम्युलेट करना है. उदाहरण के लिए:
# invoke
myHttpsFunction()
myHttpsFunction.get()
myHttpsFunction.post()
# invoke at sub-path
myHttpsFunction('/path')
myHttpsFunction.get('/path')
myHttpsFunction.post('/path')
# send POST request with form data
myHttpsFunction.post('/path').form( {foo: 'bar' })
एचटीटीपीएस कॉल करने वाले फ़ंक्शन शुरू करें
एचटीटीपीएस कॉल करने की सुविधा वाले फ़ंक्शन को स्थानीय तौर पर शुरू करते समय, आपको जांच के लिए सही डेटा देना होगा.
# invoke
myCallableFunction('test data')
myCallableFunction({'foo': 'bar'})
वैकल्पिक रूप से, आप Firebase-Instance-ID-token
को दूसरे पैरामीटर के रूप में पास कर सकते हैं. यह एक स्ट्रिंग होनी चाहिए.
# invoke with FCM registration token
myCallableFunction('test data', {instanceIdToken: 'sample token'})
context.auth
का एम्युलेशन फ़िलहाल उपलब्ध नहीं है.
रीयलटाइम डेटाबेस फ़ंक्शन शुरू करना
रीयलटाइम डेटाबेस फ़ंक्शन को स्थानीय तौर पर चलाते समय, आपको
टेस्ट डेटा सही रहेगा. आम तौर पर, इसका मतलब है कि Search Ads 360 के लिए नया टेस्ट डेटा उपलब्ध कराना
onDelete
कार्रवाइयों के लिए onCreate
कार्रवाई, पुराना/हटाया गया डेटा और दोनों
onUpdate
या onWrite
फ़ंक्शन:
# invoke onCreate function
myDatabaseFunction('new_data')
# invoke onDelete function
myDatabaseFunction('old_data')
# invoke onUpdate or onWrite function
myDatabaseFunction({before: 'old_data', after: 'new_data' })
before/after
विकल्पों के अलावा, शेल, params
उपलब्ध कराता है
पाथ में वाइल्डकार्ड की नकल करने में इस्तेमाल करने का विकल्प:
# mock wildcards in path, for example: if the path was input/{group}/{id}
myDatabaseFunction('data', {params: {group: 'a', id: 123}})
डिफ़ॉल्ट रूप से, शेल एडमिन (सेवा खाता) के साथ रीयलटाइम डेटाबेस फ़ंक्शन चलाता है
खास अधिकारों को ऐक्सेस करना होगा. किसी फ़ंक्शन को खास तौर पर चलाने के लिए, auth
विकल्प का इस्तेमाल करें
असली उपयोगकर्ता या बिना पुष्टि वाले उपयोगकर्ता के तौर पर:
# to mock unauthenticated user
myDatabaseFunction('data', {authMode: 'USER'})
# to mock end user
myDatabaseFunction('data', {auth: {uid: 'abcd'}})
Firestore फ़ंक्शन शुरू करें
स्थानीय तौर पर Firebase फ़ंक्शन चलाते समय, आपको यह जानकारी देनी होगी
टेस्ट डेटा सही रहेगा. आम तौर पर, इसका मतलब है कि Search Ads 360 के लिए नया टेस्ट डेटा उपलब्ध कराना
onDelete
कार्रवाइयों के लिए onCreate
कार्रवाई, पुराना/हटाया गया डेटा और दोनों
onUpdate
या onWrite
फ़ंक्शन. ध्यान दें कि Firestore डेटा
की-वैल्यू पेयर; इस्तेमाल किए जा सकने वाले डेटा टाइप देखें.
# invoke onCreate function
myFirestoreFunction({foo: ‘new’})
# invoke onDelete function
myFirestoreFunction({foo: ‘old’})
# invoke onUpdate or onWrite function
myFirestoreFunction({before: {foo: ‘old’}, after: {foo: ‘new’} })
data
ऑब्जेक्ट के before/after
फ़ील्ड के अलावा,
मॉक करने के लिए, options
ऑब्जेक्ट पर params
फ़ील्ड का इस्तेमाल करें
दस्तावेज़ के नाम में वाइल्डकार्ड:
# mock wildcards in document name, for example: if the name was input/{group}/{id}
myFirestoreFunction({foo: ‘new’}, {params: {group: 'a', id: 123}})
शेल, हमेशा एडमिन के अधिकारों के साथ Firestore फ़ंक्शन चलाता है. ये काम, इसका मतलब है कि यह इवेंट बनाने/अपडेट करने/मिटाने का मॉक ऐसे बनाता है जैसे किसी इवेंट को एडमिन ऐक्सेस वाले उपयोगकर्ता.
PubSub फ़ंक्शन शुरू करना
PubSub फ़ंक्शन के लिए, Buffer
इंस्टेंस में अपना मैसेज पेलोड डालें और
विकल्प के तौर पर डेटा एट्रिब्यूट जोड़ें, जैसा कि नीचे दिखाया गया है:
// invokes a function with the JSON message { hello: 'world' } and attributes { foo: 'bar' }
myPubsubFunction({data: new Buffer('{"hello":"world"}'), attributes: {foo: 'bar'}})
Analytics फ़ंक्शन शुरू करना
आप बिना किसी डेटा के Analytics फ़ंक्शन शुरू कर सकते हैं
शेल में myAnalyticsFunction()
दौड़ रहा है.
फ़ंक्शन को टेस्ट डेटा के साथ चलाने के लिए, हमारा सुझाव है कि
आपके फ़ंक्शन की ज़रूरत के लिए खास इवेंट डेटा फ़ील्ड:
var data = {
eventDim: [{
// populates event.data.params
params: {foo: {stringValue: 'bar'} },
// Also valid:
// {intValue: '10'}, {floatValue: '1.0'}, {doubleValue: '1.0'}
// populates event.data.name
name: 'event_name',
// populates event.data.logTime, specify in microseconds
timestampMicros: Date.now() * 1000,
// populates event.data.previousLogTime, specify in microseconds
previousTimestampMicros: Date.now() * 1000,
// populates event.data.reportingDate, specify in 'YYYYMMDD' format
date: '20170930',
// populates event.data.valueInUSD
valueInUsd: 230
}],
userDim: userDim
};
myAnalyticsFunction(data);
स्टोरेज और पुष्टि करने से जुड़े फ़ंक्शन शुरू करें
स्टोरेज और पुष्टि करने वाले फ़ंक्शन के लिए, लोकल फ़ंक्शन को फ़ंक्शन के अंदर देखना है. टेस्ट डेटा को इससे जुड़े डेटा फ़ॉर्मैट को फ़ॉलो करें:
- Cloud Storage के लिए:
ObjectMetadata
- Authentication के लिए:
UserRecord
सिर्फ़ उन फ़ील्ड को चुनें जिन पर आपका कोड निर्भर करता है या अगर आपको सिर्फ़ वे फ़ील्ड शामिल करने हैं जिन पर फ़ंक्शन को चलाना चाहते हैं.