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

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

نسخه: 1.2.0

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

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

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

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

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

درباره Cloud Firestore

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

برای اطلاعات بیشتر در مورد 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>

خط مشی Assign Message زیر از مقدار متغیری که پاسخ برنامه افزودنی را ذخیره می کند برای اختصاص بار پاسخ استفاده می کند.

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

خط مشی Assign Message زیر از مقدار متغیری که پاسخ برنامه افزودنی را ذخیره می کند برای اختصاص بار پاسخ استفاده می کند.

<?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 نام مجموعه حاوی سند برای حذف. رشته هیچ کدام بله.
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>

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

همه شهرهایی را انتخاب کنید که ایالت = 'CA' و جمعیت < 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>

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

همه شهرهایی را انتخاب کنید که ایالت = 'CA' و جمعیت < 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 URL به پایگاه داده Cloud Firestore که این برنامه افزودنی باید از درخواست‌های ساختن whem استفاده کند. این URL معمولاً به شکل https://DATABASE_NAME.firebaseio.com است. هیچ کدام بله.
اعتبارنامه وقتی در کنسول Apigee Edge وارد می‌شود، این محتوای فایل کلیدی است که با دستورالعمل‌های Firebase ایجاد کرده‌اید. هنگامی که از طریق API مدیریت ارسال می شود، یک مقدار کدگذاری شده با base64 است که از فایل کلید تولید می شود. هیچ کدام بله.