আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
ভার্সন: 2.0.1
Cloud Firestore ডেটাবেসে ডেটা তৈরি, পড়া বা মুছে ফেলা।
এই এক্সটেনশন কনফিগার ও ব্যবহার করার জন্য এই কন্টেন্ট রেফারেন্স প্রদান করে। API প্রক্সি থেকে এই এক্সটেনশন ব্যবহার করার আগে, আপনাকে অবশ্যই:
Firebase কনসোলে একটি Firebase প্রোজেক্ট তৈরি করুন যেখানে আপনার ডেটা স্টোর করা আছে।
কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশন যোগ ও কনফিগার করার সময়, ফলাফল হিসেবে প্রাপ্ত কী JSON ফাইলের কন্টেন্ট ব্যবহার করুন।
Cloud Firestore সম্পর্কে
Cloud Firestore ডেটা ডকুমেন্ট হিসেবে সেভ করে, যা কালেকশনে সেভ করা হয়। আপনি প্রথমবার কোনও ডকুমেন্টে ডেটা যোগ করলে, Cloud Firestore পরোক্ষভাবে কালেকশন ও ডকুমেন্ট তৈরি করে। আপনাকে আলাদা করে কালেকশন বা ডকুমেন্ট তৈরি করতে হবে না।
Cloud Firestore সম্পর্কে আরও জানতে, Cloud Firestore ডকুমেন্টেশনে Firestore ব্যবহার শুরু করুন দেখুন।
নমুনা
ExtensionCallout নীতি ব্যবহার করে Cloud Firestore এক্সটেনশন অ্যাকশনের জন্য কীভাবে সহায়তা কনফিগার করতে হয় তা নিম্নলিখিত উদাহরণগুলি থেকে বোঝা যায়।
ডেটা যোগ করুন
নিম্নলিখিত 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>
ক্রিয়াসমূহ
deleteDocument
সংগ্রহ থেকে একটি ডকুমেন্ট মুছে দেয়।
অনুরোধের প্যারামিটার
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
| প্যারামিটার | বিবরণ | ধরন | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| colName | মুছে ফেলার জন্য ডকুমেন্ট সহ কালেকশনের নাম। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| docName | মুছে ফেলার জন্য ডকুমেন্টের নাম। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
রেসপন্স
কোনওটিই নয়।
getDocument
একটি ডকুমেন্টের কন্টেন্ট রিট্রিভ করে।
অনুরোধের প্যারামিটার
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
| প্যারামিটার | বিবরণ | ধরন | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| colName | যে কালেকশন থেকে ডকুমেন্ট রিট্রিভ করতে হবে সেটির নাম। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| docName | যে ডকুমেন্ট ফিরিয়ে আনা হবে তার নাম। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
রেসপন্স
JSON ফর্ম্যাটে ডকুমেন্টের কন্টেন্ট সহ অবজেক্ট।
কোয়েরি
ফিল্টার তৈরি করে এমন নির্দিষ্ট শর্তের মাধ্যমে কোনও সংগ্রহ কোয়েরি করে।
এই অ্যাকশনের queryArray প্যারামিটার অ্যারের একটি অ্যারে (অথবা কোনও ফিল্টারিং কন্ডিশন না থাকলে খালি অ্যারে) নির্দিষ্ট করে। ভিতরের প্রতিটি অ্যারে ফিল্টারের একটি কন্ডিশন নির্দিষ্ট করে। একাধিক ভেতরের অ্যারে AND অপারেটরের মাধ্যমে যুক্ত একাধিক শর্তকে বোঝায়।
অভ্যন্তরীণ কন্ডিশন অ্যারের প্রতিটি এলিমেন্ট কন্ডিশনের একটি অংশকে বোঝায়। কন্ডিশন অ্যারেতে সবসময় নিম্নলিখিত তিনটি এলিমেন্ট থাকে:
- কালেকশন ফিল্ড নির্দিষ্ট করে এমন একটি বাঁদিকের এলিমেন্ট।
- অপারেটর নির্দিষ্ট করে এমন একটি মধ্যবর্তী এলিমেন্ট।
- ডানদিকের এলিমেন্ট, যা কালেকশন ফিল্ডের ভ্যালু নির্দিষ্ট করে।
নিচের উদাহরণে, সংগ্রহের state এবং population ফিল্ডের উপর ভিত্তি করে ফিল্টার করার জন্য দুটি কন্ডিশন অ্যারে নির্দিষ্ট করা হয়েছে:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
রানটাইমে, এই অ্যাকশনকে নিম্নলিখিত কোয়েরির মতো করে ব্যাখ্যা করা হয়:
state = 'CA' এবং population < 1000000 সহ সব শহর বেছে নিন
একাধিক শর্ত সহ কোয়েরি অবশ্যই কম্পোজিট ইন্ডেক্স দ্বারা Cloud Firestore-এ কাজ করতে হবে। আরও তথ্যের জন্য, Cloud Firestore-এ ইন্ডেক্সের ধরন দেখুন।
অনুরোধের প্যারামিটার
সিন্ট্যাক্স
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
উদাহরণ
এই উদাহরণে, queryArray প্যারামিটার দুটি শর্ত নির্দিষ্ট করে যার ভিত্তিতে colName প্যারামিটার দ্বারা নির্দিষ্ট করা cities সংগ্রহ ফিল্টার করা হবে।
একাধিক শর্ত সহ কোয়েরি অবশ্যই কম্পোজিট ইন্ডেক্স দ্বারা Cloud Firestore-এ কাজ করতে হবে। আরও তথ্যের জন্য, Cloud Firestore-এ ইন্ডেক্সের ধরন দেখুন।
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
রানটাইমে, এই অ্যাকশনকে নিম্নলিখিত কোয়েরির মতো করে ব্যাখ্যা করা হয়:
state = 'CA' এবং population < 1000000 সহ সব শহর বেছে নিন
| প্যারামিটার | বিবরণ | ধরন | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| colName | কোয়েরি করার জন্য কালেকশনের নাম। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| queryArray | কন্ডিশন অ্যারের একটি অ্যারে যা একসাথে ফিল্টারের অংশগুলি নির্দিষ্ট করে। কন্ডিশন বাদ দিতে (ফলাফল ফিল্টার না করতে) একটি খালি অ্যারে নির্দিষ্ট করুন। | অ্যারে | কোনওটিই নয়। | হ্যাঁ। |
রেসপন্স
JSON ফর্ম্যাটে ডকুমেন্টের কন্টেন্ট সহ অবজেক্ট।
setDocument
Cloud Firestore কালেকশনে কোনও ডকুমেন্ট কপি করে। সংগ্রহে ডকুমেন্টটি আগে থেকেই থাকলে, এটি ওভাররাইট হয়ে যাবে।
অনুরোধের প্যারামিটার
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
| প্যারামিটার | বিবরণ | ধরন | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|---|
| colName | যে কালেকশনে ডকুমেন্ট তৈরি করতে হবে তার নাম। | স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| docName | data যে ডকুমেন্টে কপি করা হবে তার নাম। |
স্ট্রিং | কোনওটিই নয়। | হ্যাঁ। |
| ডেটা | docName-এ কপি করার জন্য ডেটা। এটি অবশ্যই একটি সঠিক JSON অবজেক্ট হতে হবে। অ্যারে কাজ করে না। |
অবজেক্ট | কোনওটিই নয়। | না। |
রেসপন্স
কোনওটিই নয়।
কনফিগারেশন রেফারেন্স
API প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশন কনফিগার ও ডেপ্লয় করার সময় নিম্নলিখিত বিষয়গুলি ব্যবহার করুন। Apigee কনসোল ব্যবহার করে এক্সটেনশন কনফিগার করার ধাপগুলি জানতে, এক্সটেনশন যোগ করা ও কনফিগার করা দেখুন।
এক্সটেনশনের সাধারণ প্রপার্টি
নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।
| সম্পত্তি | বর্ণনা | ডিফল্ট | প্রয়োজন |
|---|---|---|---|
name | আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। | কোনোটিই নয় | হ্যাঁ |
packageName | Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। | কোনোটিই নয় | হ্যাঁ |
version | যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। | কোনোটিই নয় | হ্যাঁ |
configuration | আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন | কোনোটিই নয় | হ্যাঁ |
এই এক্সটেনশন প্যাকেজের প্রপার্টি
| প্রপার্টি | বিবরণ | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|
| firestoreDB | অনুরোধ করার সময় এই এক্সটেনশনকে ব্যবহার করতে হবে এমন Cloud Firestore ডেটাবেসের URL. এই URL সাধারণত ফর্মের জন্য ব্যবহার করা হয় https://DATABASE_NAME.firebaseio.com। |
কোনওটিই নয়। | হ্যাঁ। |
| ক্রেডেনশিয়াল | Apigee Edge কনসোলে এটি লেখা হলে, Firebase নির্দেশাবলী মেনে আপনি যে কী ফাইল তৈরি করেছেন, এটি তার কন্টেন্ট। ম্যানেজমেন্ট API ব্যবহার করে পাঠানো হলে, এটি কী ফাইল থেকে তৈরি করা একটি base64-এনকোড করা ভ্যালু। | কোনওটিই নয়। | হ্যাঁ। |