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

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

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

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

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

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

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

শেল মধ্যে আবাহন 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 কলযোগ্য ফাংশন আহ্বান করুন

স্থানীয়ভাবে 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 ফাংশন। লক্ষ্য করুন যে ফায়ারস্টোর ডেটা কী-ভ্যালু পেয়ার হতে হবে; দেখতে সমর্থিত ডেটা প্রকার

# 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);

সংগ্রহস্থল, Auth, এবং Crashlytics ফাংশন আহ্বান

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

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

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