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

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

সংস্করণ: 1.4.1

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

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

  1. Firebase কনসোলে একটি Firebase প্রকল্প তৈরি করুন যেখানে আপনার ডেটা সংরক্ষণ করা হয়।

  2. পরিষেবা অ্যাকাউন্টের জন্য একটি কী তৈরি করুন

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

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

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

ক্লাউড ফায়ারস্টোর সম্পর্কে আরও জানতে, ক্লাউড ফায়ারস্টোর ডকুমেন্টেশনে ফায়ারস্টোর দিয়ে শুরু করুন দেখুন।

নমুনা

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

ডেটা যোগ করুন

নিম্নলিখিত 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>
প্যারামিটার বর্ণনা টাইপ ডিফল্ট প্রয়োজন
colName মুছে ফেলা নথি ধারণকারী সংগ্রহের নাম। স্ট্রিং কোনোটিই নয়। হ্যাঁ।
ডকনেম মুছে ফেলা নথির নাম। স্ট্রিং কোনোটিই নয়। হ্যাঁ।

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

কোনোটিই নয়।

ডকুমেন্ট পান

একটি একক নথির বিষয়বস্তু উদ্ধার করে।

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

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

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

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৷

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

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

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

সেট ডকুমেন্ট

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

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

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

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

কোনোটিই নয়।

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

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

সাধারণ এক্সটেনশন বৈশিষ্ট্য

The following properties are present for every extension.

Property Description Default Required
name Name you're giving this configuration of the extension. None Yes
packageName Name of the extension package as given by Apigee Edge. None Yes
version Version number for the extension package from which you're configuring an extension. None Yes
configuration Configuration value specific to the extension you're adding. See Properties for this extension package None Yes

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

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