Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

অ্যাডমিন শংসাপত্র সেট আপ করুন (ঐচ্ছিক)

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

  • ক্লাউড Firestore এবং রিয়েলটাইম ডাটাবেস ট্রিগার ইতিমধ্যে পর্যাপ্ত প্রমাণপত্রাদি, এবং অতিরিক্ত সেটআপ প্রয়োজন হয় না।
  • Firebase API যেমন প্রমাণীকরণ এবং FCM বা Google API যেমন ক্লাউড ট্রান্সলেশন বা ক্লাউড স্পিচ সহ অন্যান্য সমস্ত 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 ফাংশন জন্য বৈধ।

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

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 ফাংশন আহ্বান করুন

শেল মধ্যে আবাহন 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 কলেবল ফাংশন চালু করার সময়, আপনাকে উপযুক্ত পরীক্ষার ডেটা প্রদান করতে হবে।

# 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'}})

Firestore ফাংশন আহ্বান করুন

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

ছাড়াও 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 ফাংশন আহ্বান করুন

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

শুধুমাত্র সেই ক্ষেত্রগুলি নির্দিষ্ট করুন যেগুলির উপর আপনার কোড নির্ভর করে, অথবা যদি আপনি শুধুমাত্র ফাংশন চালাতে চান তবে কোনওটিই নয়৷