Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
This page was translated by the Cloud Translation API.
Switch to English

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

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

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

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

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

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

  1. গুগল ক্লাউড কনসোলের পরিষেবা অ্যাকাউন্ট ফলকটি খুলুন।
  2. অ্যাপ ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্টটি নির্বাচিত কিনা তা নিশ্চিত করুন এবং তৈরি কীটি নির্বাচন করতে ডানদিকে বিকল্প মেনুটি ব্যবহার করুন
  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
    

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

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

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

myFunctionName(data, options)

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

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

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

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

এই বৈশিষ্ট্যটি ব্যবহার করতে, firebase-tools ন্যূনতম সংস্করণ থাকতে হবে 3.11.0, এবং ফায়ারবেস firebase-functions এসডিকে অবশ্যই ন্যূনতম সংস্করণ 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

অবশেষে, নিম্নলিখিত কমান্ড দিয়ে শেলটি চালান:

firebase functions:shell

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

শেলটিতে এইচটিটিপিএস ফাংশন চাওয়ার request , request এনপিএম মডিউলের অনুরূপ, তবে আপনি যে ফাংশনটি অনুকরণ করতে চান তার 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 , আপনি দ্বিতীয় প্যারামিটার হিসাবে 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 ওয়াইল্ডকার্ডকে বিদ্রূপ করার জন্য 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’} })

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

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

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

পাবসুব ফাংশনগুলির জন্য, Buffer ইভেন্টে আপনার বার্তা পেলোড inোকান এবং প্রদর্শিত হিসাবে optionচ্ছিকভাবে ডেটা অ্যাট্রিবিউট যুক্ত করুন:

// 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
  • ক্র্যাশলিটিক্সের জন্য: Issue

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