أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. info
الإصدار: 2.0.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>
في وقت التشغيل، يتم تفسير هذا الإجراء على أنّه طلب بحث مثل ما يلي:
اختَر جميع المدن التي تكون فيها الولاية = "كاليفورنيا" وعدد السكان < 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>
في وقت التشغيل، يتم تفسير هذا الإجراء على أنّه طلب بحث مثل ما يلي:
اختَر جميع المدن التي تكون فيها الولاية = "كاليفورنيا" وعدد السكان < 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. عند إرسالها من خلال Management API، تكون قيمة مُشفَّرة بترميز base64 تم إنشاؤها من ملف المفاتيح. | بلا عُري | نعم. |