أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
الإصدار: 1.2.0
إنشاء البيانات أو قراءتها أو حذفها في قاعدة بيانات Cloud Firestore
يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام هذه الإضافة من خادم وكيل لواجهة برمجة التطبيقات، عليك تنفيذ ما يلي:
أنشئ مشروع Firebase من خلال وحدة تحكُّم Firebase حيث يتم تخزين بياناتك.
استخدِم محتوى ملف 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>
تستخدم سياسة تعيين رسالة التالية قيمة المتغير الذي يخزِّن رد الإضافة من أجل تحديد حمولة الاستجابة.
<?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>
المهام
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.
query
طلبات بحث عن مجموعة من خلال شروط التحديد التي تشكِّل فلترًا.
تحدّد مَعلمة 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 صالحًا. الصفائف غير متاحة. |
الكائن | بلا عُري | لا. |
الرد
بلا عُري
مرجع الإعداد
يمكنك استخدام ما يلي عند إعداد هذه الإضافة ونشرها للاستخدام في الخوادم الوكيلة لواجهة برمجة التطبيقات. لمعرفة خطوات إعداد إضافة باستخدام وحدة تحكُّم Apigee، يُرجى الاطّلاع على إضافة إضافة وضبطها.
خصائص الإضافات الشائعة
السمات التالية متاحة لكل إضافة.
الموقع | الوصف | تلقائي | عنصر مطلوب |
---|---|---|---|
name |
الاسم الذي تُعطِه هذه الإضافة من الإضافات. | لا ينطبق | متوافق |
packageName |
اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. | لا ينطبق | متوافق |
version |
رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. | لا ينطبق | متوافق |
configuration |
قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه | لا ينطبق | متوافق |
خصائص حزمة الإضافات هذه
الموقع | الوصف | تلقائي | مطلوب |
---|---|---|---|
firestoreDB | عنوان URL لقاعدة بيانات Cloud Firestore التي يجب أن تستخدمها هذه الإضافة أثناء إجراء الطلبات. يظهر عنوان URL هذا عادةً بالشكل https://DATABASE_NAME.firebaseio.com . |
بلا عُري | نعم. |
بيانات الاعتماد | عند إدخال هذا المحتوى في وحدة تحكُّم Apigee Edge، يكون هذا هو محتوى ملف المفتاح الذي أنشأته باستخدام تعليمات Firebase. وعند إرسالها عبر واجهة برمجة تطبيقات الإدارة، تكون قيمة بترميز base64 يتم إنشاؤها من ملف المفتاح. | بلا عُري | نعم. |