برنامه افزودنی Google Cloud Firestore

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

نسخه: ۲.۰.۲

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

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

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

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

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

درباره فروشگاه ابری فایراستور

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

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

نمونه‌ها

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

اضافه کردن داده

سیاست 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>

دریافت داده‌ها

در این مثال، سیاست ExtensionCallout مقدار سند freewill@example.com را از مجموعه users بازیابی می‌کند. در اینجا، ویژگی parsed عنصر <Output> روی 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 سند 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>

داده‌های پرس‌وجو

در این مثال، سیاست ExtensionCallout از یک مجموعه cities پرس‌وجو می‌کند. نتایج پرس‌وجو بر اساس فیلدهای state و population فیلتر می‌شوند. در اینجا، ویژگی parsed عنصر <Output> روی 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' و جمعیت آنها کمتر از ۱۰۰۰۰۰۰ است، انتخاب کنید.

یک پرس‌وجو که شامل چندین شرط است، باید در 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>

در زمان اجرا، این عمل به عنوان یک پرس و جو مانند زیر تفسیر می‌شود:

تمام شهرهایی را که ایالت آنها برابر با 'CA' و جمعیت آنها کمتر از ۱۰۰۰۰۰۰ است، انتخاب کنید.

پارامتر توضیحات نوع پیش‌فرض مورد نیاز
نام ستون نام مجموعه مورد نظر برای جستجو. رشته هیچ کدام. بله.
آرایه پرس و جو آرایه‌ای از آرایه‌های شرط که با هم، بخش‌های یک فیلتر را مشخص می‌کنند. یک آرایه خالی برای حذف شرط‌ها (نه نتایج فیلتر) مشخص کنید. آرایه هیچ کدام. بله.

پاسخ

شیء حاوی محتوای سند با فرمت JSON.

تنظیم سند

یک سند را در یک مجموعه Cloud Firestore کپی می‌کند. اگر سند از قبل در مجموعه وجود داشته باشد، این دستور آن را رونویسی می‌کند.

پارامترهای درخواست

<Input><![CDATA[{
  "colName" : "firestore-collection-name",
  "docName" : "firestore-document-name",
  "data" : "data-to-copy"
}]]></Input>
پارامتر توضیحات نوع پیش‌فرض مورد نیاز
نام ستون نام مجموعه‌ای که سند در آن ایجاد می‌شود. رشته هیچ کدام. بله.
نام سند نام سندی که data باید در آن کپی شوند. رشته هیچ کدام. بله.
داده‌ها داده‌هایی که باید در docName کپی شوند. این باید یک شیء JSON معتبر باشد. آرایه‌ها پشتیبانی نمی‌شوند. شیء هیچ کدام. خیر.

پاسخ

هیچ کدام.

مرجع پیکربندی

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

ویژگی‌های افزونه‌های رایج

ویژگی های زیر برای هر افزونه وجود دارد.

ویژگی شرح پیش فرض ضروری
name نامی که به این پیکربندی افزونه می‌دهید. هیچ یک آره
packageName نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. هیچ یک آره
version شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. هیچ یک آره
configuration مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید هیچ یک آره

ویژگی‌های این بسته الحاقی

ملک توضیحات پیش‌فرض مورد نیاز
فایر استور دی‌بی آدرس اینترنتی (URL) به پایگاه داده Cloud Firestore که این افزونه باید هنگام ارسال درخواست‌ها از آن استفاده کند. این آدرس اینترنتی معمولاً به شکل https://DATABASE_NAME.firebaseio.com است. هیچ کدام. بله.
اعتبارنامه‌ها وقتی در کنسول Apigee Edge وارد می‌شود، این محتویات فایل کلیدی است که شما با دستورالعمل‌های Firebase ایجاد کرده‌اید. وقتی با استفاده از API مدیریت ارسال می‌شود، یک مقدار کدگذاری شده base64 است که از فایل کلیدی تولید شده است. هیچ کدام. بله.