Google 致力于为黑人社区推动种族平等。查看具体举措

ইন্টারেক্টিভভাবে টেস্ট ফাংশন

ক্লাউড ফাংশন শেল পরীক্ষার ডেটা সহ ফাংশন আহ্বানের জন্য একটি ইন্টারেক্টিভ শেল সরবরাহ করে। শেলটি সমস্ত ট্রিগার ধরণের সমর্থন করে।

প্রশাসক শংসাপত্রগুলি সেট আপ করুন (alচ্ছিক)

আপনি আপনার ফাংশন পরীক্ষা মাধ্যমে Google API গুলি বা অন্যান্য Firebase API গুলির সাথে যোগাযোগ করার জন্য চান Firebase এডমিন SDK এর , আপনি অ্যাডমিন পরিচয়পত্র সেট আপ করার প্রয়োজন হতে পারে।

  • ক্লাউড Firestore এবং রিয়েলটাইম ডাটাবেস ট্রিগার ইতিমধ্যে পর্যাপ্ত প্রমাণপত্রাদি, এবং অতিরিক্ত সেটআপ প্রয়োজন হয় না।
  • প্রমাণীকরণ এবং এফসিএম বা ক্লাউড ট্রান্সলেশন বা ক্লাউড স্পিচের মতো গুগল এপিআই সহ ফায়ারবেস এপিআই সহ অন্যান্য সমস্ত API গুলি এই বিভাগে বর্ণিত সেটআপ ধাপগুলির প্রয়োজন। এই নিয়ম প্রযোজ্য কিনা আপনি ব্যবহার করছেন ফাংশন শেল বা firebase emulators:start

এমুলেটেড ফাংশনগুলির জন্য অ্যাডমিন শংসাপত্রগুলি সেট আপ করতে:

  1. খুলুন পরিষেবা অ্যাকাউন্টস ফলকে Google ক্লাউড কনসোলে করুন।
  2. নিশ্চিত করুন যে App ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্ট নির্বাচন করা হয় করুন, এবং কী তৈরি করুন নির্বাচন করতে ডান দিকে অপশন মেনু ব্যবহার করুন।
  3. যখন বলা হবে, কী ধরনের জন্য তাদেরকে JSON নির্বাচন করুন, এবং তৈরি করুন এ ক্লিক করুন।
  4. ডাউনলোড করা কীতে নির্দেশ করতে আপনার Google ডিফল্ট শংসাপত্রগুলি সেট করুন:

    ইউনিক্স

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase functions:shell
    

    উইন্ডোজ

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase functions:shell
    

এই পদক্ষেপগুলি সম্পন্ন করার পর, আপনার ফাংশন পরীক্ষা ব্যবহার Firebase এবং Google API গুলি অ্যাক্সেস করতে পারেন এডমিন SDK এর । উদাহরণস্বরূপ, যখন একটি প্রমাণীকরণ ট্রিগার পরীক্ষা emulated ফাংশন বলতে পেরেছিলাম admin.auth().getUserByEmail(email)

ক্লাউড ফাংশন শেল ব্যবহার করে ফাংশন পরিবেশন করুন

ক্লাউড ফাংশনস শেল পরীক্ষার ডেটা সহ ফাংশনগুলি চাওয়ার জন্য একটি ইন্টারেক্টিভ শেল দিয়ে সমস্ত ধরণের ফাংশন ট্রিগারকে এমুলেট করে। বিকল্পগুলি ফাংশনের ধরণের দ্বারা পৃথক হয় তবে প্রাথমিক ব্যবহারের ফর্ম্যাটটি হ'ল:

myFunctionName(data, options)

data প্যারামিটার রিয়েলটাইম ডাটাবেস, ক্লাউড Firestore এবং PubSub ট্রিগার জন্য প্রয়োজন বোধ করা, এবং অন্যান্য সব ধরনের ফাংশন জন্য ঐচ্ছিক। এছাড়াও, ঐচ্ছিক options প্যারামিটার শুধুমাত্র রিয়েলটাইম ডাটাবেস এবং ক্লাউড Firestore ফাংশন জন্য বৈধ।

Allyচ্ছিকভাবে, আপনি স্থানীয় একটি ফাইল থেকে ভেরিয়েবল হিসাবে সংরক্ষণ করে এবং এর সাথে একটি ক্রিয়াকলাপটি আহ্বান করে পরীক্ষার ডেটা লোড করতে পারেন:

var data = require('./path/to/testData.json');
myFunction(data);

ক্লাউড ফাংশন শেলটি ইনস্টল করুন এবং কনফিগার করুন

এই বৈশিষ্ট্যটি ব্যবহার করতে, 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

এইচটিটিপিএস ক্রিয়াকলাপ বাতিল করুন

শেল মধ্যে আবাহন HTTPS দ্বারা কাজগুলির জন্য ব্যবহার হিসাবে একই 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' })

HTTPS কলযোগ্য ফাংশনগুলি আমন্ত্রণ করুন vo

স্থানীয়ভাবে HTTPS কলযোগ্য ফাংশনগুলিকে অনুরোধ করার সময়, আপনাকে উপযুক্ত পরীক্ষার ডেটা সরবরাহ করতে হবে।

# invoke
myCallableFunction('test data')
myCallableFunction({'foo': 'bar'})

বৈকল্পিকভাবে, যদি আপনি একটি মধ্যে পাস হতে পারে Firebase-Instance-ID-token দ্বিতীয় প্যারামিটার হিসাবে। এটি অবশ্যই একটি স্ট্রিং হওয়া উচিত।

# invoke with FCM registration token
myCallableFunction('test data', {instanceIdToken: 'sample token'})

এর এমুলেশন context.auth বর্তমানে অনুপলব্ধ।

রিয়েলটাইম ডেটাবেস ফাংশন আহবান করুন

স্থানীয়ভাবে রিয়েলটাইম ডেটাবেস ফাংশন চলাকালীন, আপনাকে যথাযথ পরীক্ষার ডেটা সরবরাহ করতে হবে। সাধারণত নতুন টেস্ট ডেটার প্রদানের মানে onCreate অপারেশন জন্য পুরানো / সরানো তথ্য onDelete অপারেশন, এবং উভয় 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'}})

ফায়ার স্টোর ফাংশনগুলি বাতিল করুন

স্থানীয়ভাবে ফায়ারস্টোর ফাংশনগুলি চালানোর সময়, আপনাকে যথাযথ পরীক্ষার ডেটা সরবরাহ করতে হবে। সাধারণত নতুন টেস্ট ডেটার প্রদানের মানে onCreate অপারেশন জন্য পুরানো / সরানো তথ্য onDelete অপারেশন, এবং উভয় onUpdate বা onWrite ফাংশন। নোট করুন যে ফায়ার স্টোর ডেটা কী-মান জোড়া হতে হবে; দেখতে সমর্থিত ডেটা প্রকার

# invoke onCreate function
myFirestoreFunction({foo: ‘new’})

# invoke onDelete function
myFirestoreFunction({foo: ‘old’})

# invoke onUpdate or onWrite function
myFirestoreFunction({before: {foo: ‘old’}, after: {foo: ‘new’} })

ছাড়াও before/after ক্ষেত্র data বস্তু, আপনি ব্যবহার করতে পারেন params উপর ক্ষেত্র options একটি নথি নামে উপহাস ওয়াইল্ডকার্ড আপত্তি:

# mock wildcards in document name, for example: if the name was input/{group}/{id}
myFirestoreFunction({foo: ‘new’}, {params: {group: 'a', id: 123}})

শেলটি সর্বদা প্রশাসনিক সুবিধাসহ ফায়ারস্টোর ফাংশন পরিচালনা করে যার অর্থ এটি কোনও প্রশাসনিক ব্যবহারকারীর দ্বারা সম্পন্ন ইভেন্টটিকে তৈরি / আপডেট / মোছার উপহাস করে।

পাবসব ফাংশনগুলি দাওয়াত করুন

PubSub কাজগুলির জন্য একটি আপনার বার্তা পে লোড সন্নিবেশ Buffer উদাহরণস্বরূপ এবং ঐচ্ছিকরূপে তথ্য বৈশিষ্ট্যাবলী যোগ দেখানো হয়েছে:

// invokes a function with the JSON message { hello: 'world' } and attributes { foo: 'bar' }
myPubsubFunction({data: new Buffer('{"hello":"world"}'), attributes: {foo: 'bar'}})

অ্যানালিটিক্সের কার্যগুলি বাতিল করুন

আপনি চলমান যেকোন ডেটা ছাড়া একটি অ্যানালিটিক্স ফাংশন ডাকা যাবে myAnalyticsFunction() শেল হবে। পরীক্ষার ডেটা সহ ফাংশনটি চালানোর জন্য, আপনার ফাংশনটির যে নির্দিষ্ট ইভেন্টের ডেটা ক্ষেত্রের প্রয়োজন তা নির্দিষ্ট করার জন্য এটি একটি ভেরিয়েবল সংজ্ঞায়িত করার পরামর্শ দেওয়া হয়:

var data = {
  eventDim: [{
    // populates event.data.params
    params:{foo:'bar'},
    // 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);

স্টোরেজ, অথথ এবং ক্র্যাশলিটিক্স ফাংশনগুলি দাওয়াত করুন

স্টোরেজ, আথ এবং ক্র্যাশলিটিক্স ফাংশনগুলির জন্য, ফাংশনের অভ্যন্তরে আপনি যে টেস্টের ডেটা দেখতে চান তা স্থানীয় ফাংশনটির অনুরোধ জানায়। আপনার পরীক্ষার ডেটা অবশ্যই সম্পর্কিত ডেটা ফর্ম্যাট অনুসরণ করবে:

  • ক্লাউড স্টোরেজ জন্য: ObjectMetadata
  • প্রমাণীকরণের জন্য: UserRecord
  • Crashlytics জন্য: Issue

আপনার কোড নির্ভর করে কেবলমাত্র ক্ষেত্রগুলি নির্দিষ্ট করুন বা আপনি কেবলমাত্র ফাংশনটি চালাতে চাইলে কিছুই নয়।