গুগল ক্লাউড ফায়ারস্টোর এক্সটেনশন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

সংস্করণ: ১.৪.১

ক্লাউড ফায়ারস্টোর ডেটাবেসে ডেটা তৈরি, পড়া বা মুছে ফেলা।

এই বিষয়বস্তুতে এই এক্সটেনশনটি কনফিগার এবং ব্যবহার করার জন্য নির্দেশিকা দেওয়া হয়েছে। একটি এপিআই প্রক্সি থেকে এই এক্সটেনশনটি ব্যবহার করার আগে, আপনাকে অবশ্যই:

  1. ফায়ারবেস কনসোলে একটি ফায়ারবেস প্রজেক্ট তৈরি করুন যেখানে আপনার ডেটা সংরক্ষিত থাকবে।

  2. সার্ভিস অ্যাকাউন্টের জন্য একটি কী তৈরি করুন

  3. কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশনটি যোগ ও কনফিগার করার সময়, প্রাপ্ত কী JSON ফাইলের বিষয়বস্তু ব্যবহার করুন।

ক্লাউড ফায়ারস্টোর সম্পর্কে

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

সাধারণভাবে ক্লাউড ফায়ারস্টোর সম্পর্কে আরও জানতে, ক্লাউড ফায়ারস্টোর ডকুমেন্টেশনের 'Get started with Firestore' অংশটি দেখুন।

নমুনা

নিম্নলিখিত উদাহরণগুলিতে ExtensionCallout পলিসি ব্যবহার করে ক্লাউড ফায়ারস্টোর এক্সটেনশন অ্যাকশনের জন্য সাপোর্ট কীভাবে কনফিগার করতে হয় তা দেখানো হয়েছে।

ডেটা যোগ করুন

নিম্নলিখিত ExtensionCallout পলিসিটি users কালেকশনে freewill@example.com নামের একটি ডকুমেন্ট যোগ করে। data প্রপার্টিটি নতুন ডকুমেন্টটির ফিল্ড এবং ভ্যালুগুলো নির্দিষ্ট করে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Add-User-Data">
    <DisplayName>Add User Data</DisplayName>
    <Connector>my-cloud-firestore-extension</Connector>
    <Action>setDocument</Action>
    <Input><![CDATA[{
        "colName" : "users",
        "docName" : "freewill@example.com",
        "data" : {
            "firstName": "Will",
            "lastName": "Witman",
            "address": "270-8243 Tempor St.",
            "city": "Fort Worth",
            "region": "TX",
            "postalCode": "86519",
            "email": "freewill@example.com",
            "username": "freewill444"
        }
    }]]></Input>
</ConnectorCallout>

ডেটা পান

এই উদাহরণে, ExtensionCallout পলিসিটি users কালেকশন থেকে freewill@example.com ডকুমেন্টটির ভ্যালু পুনরুদ্ধার করে। এখানে, <Output> এলিমেন্টের parsed অ্যাট্রিবিউটটি false সেট করা হয়েছে, যাতে ফেরত আসা ফলাফলটি JSON পার্স করে অবজেক্টে পরিণত না হয়ে, একটি স্ট্রিং হিসেবে JSON হয়। আরও বিস্তারিত জানতে, <Output> এলিমেন্টের রেফারেন্স দেখুন।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Get-User-Data">
    <DisplayName>Get User Data</DisplayName>
    <Connector>straut-cloud-firestore-extension</Connector>
    <Action>getDocument</Action>
    <Input><![CDATA[{
        "colName" : "users",
        "docName" : "freewill@example.com"
    }]]></Input>
    <Output parsed="false">firestore.userdata.retrieved</Output>
</ConnectorCallout>

নিম্নলিখিত অ্যাসাইন মেসেজ পলিসিটি এক্সটেনশনের প্রতিক্রিয়া সংরক্ষণকারী ভেরিয়েবলের মান ব্যবহার করে রেসপন্স পেলোড নির্ধারণ করে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="CopyUserDataToResponse">
    <DisplayName>Copy User Data To Response</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{firestore.userdata.retrieved}</Payload>
    </Set>
</AssignMessage>

ডেটা মুছে ফেলুন

এই উদাহরণে, ExtensionCallout পলিসিটি users কালেকশন থেকে lizzie@example.com ডকুমেন্টটি মুছে দেয়।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Delete-User-Data">
    <DisplayName>Delete User Data</DisplayName>
    <Connector>my-cloud-firestore-extension</Connector>
    <Action>deleteDocument</Action>
    <Input><![CDATA[{
        "colName" : "users",
        "docName" : "lizzie@example.com"
    }]]></Input>
</ConnectorCallout>

অনুসন্ধান ডেটা

এই উদাহরণে, ExtensionCallout পলিসিটি একটি cities কালেকশন কোয়েরি করে। কোয়েরির ফলাফল state এবং population ফিল্ড দ্বারা ফিল্টার করা হয়। এখানে, <Output> এলিমেন্টের parsed অ্যাট্রিবিউটটি false সেট করা হয়েছে, যাতে ফেরত আসা ফলাফলটি JSON পার্স করে অবজেক্টে পরিণত না হয়ে, একটি স্ট্রিং হিসেবে JSON হয়। আরও বিস্তারিত জানতে, <Output> এলিমেন্টের রেফারেন্স দেখুন।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Query-City-Data">
    <DisplayName>Query City Data</DisplayName>
    <Connector>cloud-firestore-extension</Connector>
    <Action>query</Action>
    <Input><![CDATA[{
        "colName":"cities",
        "queryArray":[
          ["state", "==", "CA"],
          ["population","<",1000000]
        ]
    }]]></Input>
    <Output parsed="false">compound-query-output</Output>
</ConnectorCallout>

নিম্নলিখিত অ্যাসাইন মেসেজ পলিসিটি এক্সটেনশনের প্রতিক্রিয়া সংরক্ষণকারী ভেরিয়েবলের মান ব্যবহার করে রেসপন্স পেলোড নির্ধারণ করে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="CopyQueryResultsToResponse">
    <DisplayName>Copy Query Results To Response</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{firestore.querydata.retrieved}</Payload>
    </Set>
</AssignMessage>

কর্ম

নথি মুছে ফেলুন

একটি সংগ্রহ থেকে একটিমাত্র নথি মুছে ফেলে।

অনুরোধের পরামিতি

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "docName" : "firestore-document-name"
}]]></Input>
প্যারামিটার বর্ণনা প্রকার ডিফল্ট প্রয়োজনীয়
কলামের নাম যে সংগ্রহে মুছে ফেলার জন্য নথিটি রয়েছে, তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।
ডকনেম যে নথিটি মুছে ফেলতে হবে তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।

প্রতিক্রিয়া

কিছুই না।

ডকুমেন্ট পান

একটিমাত্র ডকুমেন্টের বিষয়বস্তু পুনরুদ্ধার করে।

অনুরোধের পরামিতি

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "docName" : "firestore-document-name"
}]]></Input>
প্যারামিটার বর্ণনা প্রকার ডিফল্ট প্রয়োজনীয়
কলামের নাম যে সংগ্রহ থেকে নথিটি পুনরুদ্ধার করতে হবে তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।
ডকনেম যে নথিটি পুনরুদ্ধার করতে হবে তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।

প্রতিক্রিয়া

ডকুমেন্টের বিষয়বস্তু JSON ফরম্যাটে ধারণকারী অবজেক্ট।

প্রশ্ন

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

এই অ্যাকশনের queryArray প্যারামিটারটি অ্যারের একটি অ্যারে (অথবা কোনো ফিল্টারিং শর্ত না থাকলে একটি খালি অ্যারে) নির্দিষ্ট করে। প্রতিটি ভেতরের অ্যারে একটি ফিল্টারের শর্ত নির্দিষ্ট করে। একাধিক ভেতরের অ্যারে একটি `AND` অপারেটর দ্বারা যুক্ত একাধিক শর্তকে বোঝায়।

একটি অভ্যন্তরীণ কন্ডিশন অ্যারের প্রতিটি উপাদান শর্তটির একটি অংশকে উপস্থাপন করে। একটি কন্ডিশন অ্যারেতে সর্বদা নিম্নলিখিত তিনটি উপাদান থাকে:

  • একটি বাম উপাদান যা সংগ্রহ ক্ষেত্রটি নির্দিষ্ট করে।
  • একটি মধ্যবর্তী উপাদান যা অপারেটরকে নির্দিষ্ট করে।
  • একটি ডানদিকের উপাদান যা কালেকশন ফিল্ডের মান নির্দিষ্ট করে।

নিম্নলিখিত উদাহরণটি কালেকশনের ' state এবং population ফিল্ডের উপর ভিত্তি করে ফিল্টার করার জন্য দুটি কন্ডিশন অ্যারে নির্দিষ্ট করে:

<Input><![CDATA[{
  "colName":"cities",
  "queryArray":[
    ["state", "==", "CA"],
    ["population","<",1000000]
  ]
}]]></Input>

রানটাইমে, এই ক্রিয়াটিকে নিম্নলিখিতের মতো একটি কোয়েরি হিসাবে ব্যাখ্যা করা হয়:

সেই সমস্ত শহর নির্বাচন করুন যেখানে রাজ্য = 'CA' এবং জনসংখ্যা < 1000000।

যে কোয়েরিতে একাধিক শর্ত অন্তর্ভুক্ত থাকে, সেটিকে ক্লাউড ফায়ারস্টোরে একটি কম্পোজিট ইনডেক্স দ্বারা সমর্থিত হতে হবে। আরও তথ্যের জন্য, ক্লাউড ফায়ারস্টোরে ইনডেক্সের প্রকারভেদ দেখুন।

অনুরোধের পরামিতি

সিনট্যাক্স

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "queryArray" : "queryArray": query-condition-array
}]]></Input>

উদাহরণ

এই উদাহরণে, queryArray প্যারামিটারটি দুটি শর্ত নির্দিষ্ট করে, যার ভিত্তিতে colName প্যারামিটার দ্বারা নির্দিষ্ট cities কালেকশনটি ফিল্টার করা হবে।

যে কোয়েরিতে একাধিক শর্ত অন্তর্ভুক্ত থাকে, সেটিকে ক্লাউড ফায়ারস্টোরে একটি কম্পোজিট ইনডেক্স দ্বারা সমর্থিত হতে হবে। আরও তথ্যের জন্য, ক্লাউড ফায়ারস্টোরে ইনডেক্সের প্রকারভেদ দেখুন।

<Input><![CDATA[{
  "colName":"cities",
  "queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>

রানটাইমে, এই ক্রিয়াটিকে নিম্নলিখিতের মতো একটি কোয়েরি হিসাবে ব্যাখ্যা করা হয়:

সেই সমস্ত শহর নির্বাচন করুন যেখানে রাজ্য = 'CA' এবং জনসংখ্যা < 1000000।

প্যারামিটার বর্ণনা প্রকার ডিফল্ট প্রয়োজনীয়
কলামের নাম যে কালেকশনটি সম্পর্কে কোয়েরি করতে হবে তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।
কোয়েরি অ্যারে শর্ত অ্যারেগুলোর একটি অ্যারে, যা একত্রে একটি ফিল্টারের অংশগুলো নির্দিষ্ট করে। শর্তগুলো বাদ দিতে (ফলাফল ফিল্টার না করে) একটি খালি অ্যারে নির্দিষ্ট করুন। অ্যারে কিছুই না। হ্যাঁ।

প্রতিক্রিয়া

ডকুমেন্টের বিষয়বস্তু JSON ফরম্যাটে ধারণকারী অবজেক্ট।

সেটডকুমেন্ট

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

অনুরোধের পরামিতি

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "docName" : "firestore-document-name",
  "data" : "data-to-copy"
}]]></Input>
প্যারামিটার বর্ণনা প্রকার ডিফল্ট প্রয়োজনীয়
কলামের নাম যে সংগ্রহে নথিটি তৈরি করতে হবে তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।
ডকনেম যে নথিতে data কপি করা হবে তার নাম। স্ট্রিং কিছুই না। হ্যাঁ।
ডেটা docName এ কপি করার জন্য ডেটা। এটি অবশ্যই একটি বৈধ JSON অবজেক্ট হতে হবে। অ্যারে সমর্থিত নয়। বস্তু কিছুই না। না।

প্রতিক্রিয়া

কিছুই না।

কনফিগারেশন রেফারেন্স

এপিআই প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশনটি কনফিগার এবং ডেপ্লয় করার সময় নিম্নলিখিত বিষয়গুলো ব্যবহার করুন। Apigee কনসোল ব্যবহার করে একটি এক্সটেনশন কনফিগার করার ধাপগুলোর জন্য, “একটি এক্সটেনশন যোগ করা এবং কনফিগার করা” দেখুন।

সাধারণ সম্প্রসারণ বৈশিষ্ট্য

নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।

সম্পত্তি বর্ণনা ডিফল্ট প্রয়োজন
name আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। কোনোটিই নয় হ্যাঁ
packageName Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। কোনোটিই নয় হ্যাঁ
version যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। কোনোটিই নয় হ্যাঁ
configuration আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন কোনোটিই নয় হ্যাঁ

এই এক্সটেনশন প্যাকেজের জন্য বৈশিষ্ট্যসমূহ

সম্পত্তি বর্ণনা ডিফল্ট প্রয়োজনীয়
ফায়ারস্টোরডিবি ক্লাউড ফায়ারস্টোর ডাটাবেসের ইউআরএল, যা এই এক্সটেনশনটি অনুরোধ করার সময় ব্যবহার করবে। এই ইউআরএলটি সাধারণত https://DATABASE_NAME.firebaseio.com এই ফর্ম্যাটের হয়ে থাকে। কিছুই না। হ্যাঁ।
পরিচয়পত্র Apigee Edge কনসোলে প্রবেশ করালে, এটি হলো Firebase-এর নির্দেশাবলী অনুসরণ করে আপনার তৈরি করা কী ফাইলের বিষয়বস্তু। ম্যানেজমেন্ট API-এর মাধ্যমে পাঠানো হলে, এটি কী ফাইল থেকে তৈরি একটি base64-এনকোডেড ভ্যালু হয়। কিছুই না। হ্যাঁ।