افزونه Google Cloud Firestore

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نسخه: 2.0.1

ایجاد، خواندن، یا حذف داده‌ها در پایگاه داده Cloud Firestore.

این محتوا مرجعی برای پیکربندی و استفاده از این افزونه ارائه می‌دهد. قبل‌از استفاده از این افزونه از یک پراکسی API، باید:

  1. پروژه Firebase را در کنسول Firebase که داده‌هایتان در آن ذخیره می‌شود ایجاد کنید.

  2. کلیدی برای حساب سرویس تولید کنید.

  3. از محتوای فایل JSON کلید حاصل هنگام افزودن و پیکربندی افزونه بااستفاده از مرجع پیکربندی استفاده کنید.

درباره Cloud Firestore

Cloud Firestore داده‌ها را در اسنادی ذخیره می‌کند که در مجموعه‌ها ذخیره می‌شوند. ‫Cloud Firestore اولین‌بار که داده‌ها را به سند اضافه می‌کنید، مجموعه‌ها و سندها را به‌طور ضمنی ایجاد می‌کند. نیازی نیست که مجموعه‌ها یا اسناد را به‌طور صریح ایجاد کنید.

برای اطلاعات بیشتر درباره Cloud Firestore به‌طور کلی، به شروع به کار با Firestore در اسناد Cloud Firestore مراجعه کنید.

نمونه‌ها

مثال‌های زیر نشان می‌دهد که چگونه پشتیبانی از کنش‌های افزونه Cloud Firestore را بااستفاده از خط‌مشی ExtensionCallout پیکربندی کنید.

افزودن داده

خط‌مشی «افزونه پیامک‌راهنما» زیر سند freewill@example.com را به مجموعه users اضافه می‌کند. دارایی 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>

دریافت داده

در این مثال، خط‌مشی «افزونه‌نوشته راهنما» مقدار سند freewill@example.com را از مجموعه users بازیابی می‌کند. در اینجا، عنصر <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>

حذف داده‌ها

در این مثال، خط‌مشی «افزونه‌پیامک‌راهنما» سند lizzie@example.com را از مجموعه users حذف می‌کند.

<?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>

داده‌های پُرسمان

در این مثال، خط‌مشی «نوشتار راهنمای افزونه» مجموعه 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 این کنش آرایه‌ای از آرایه‌ها (یا آرایه خالی برای بدون شرط فیلتر) را مشخص می‌کند. هر آرایه داخلی شرطی از فیلتر را مشخص می‌کند. چندین آرایه داخلی نشان‌دهنده چندین شرط است که با عملگر «و» به هم پیوسته‌اند.

هر عنصر در آرایه وضعیت داخلی نشان‌دهنده بخشی از وضعیت است. آرایه شرط همیشه سه عنصر زیر را دارد:

  • عنصر سمت راست که فیلد مجموعه را مشخص می‌کند.
  • عنصر میانی که اپراتور را مشخص می‌کند.
  • عنصر سمت راست که مقدار فیلد مجموعه را مشخص می‌کند.

مثال زیر دو آرایه شرط را برای فیلتر کردن براساس فیلدهای 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 دو شرط را برای فیلتر کردن مجموعه cities مشخص‌شده توسط پارامتر colName مشخص می‌کند.

پُرسمانی که شامل چندین شرط است باید در 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 که این افزونه باید هنگام درخواست دادن از آن استفاده کند. این نشانی وب معمولاً برای فرم https://DATABASE_NAME.firebaseio.com است. هیچ‌کدام. بله.
اطلاعات اعتباری وقتی در کنسول Apigee Edge وارد می‌شود، این محتوای فایل کلیدی است که با دستورالعمل‌های Firebase تولید کرده‌اید. وقتی بااستفاده از «میانای برنامه‌سازی کاربردی مدیریت» ارسال می‌شود، مقدار رمزگذاری‌شده با base64 است که از فایل کلید تولید می‌شود. هیچ‌کدام. بله.