אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
גרסה: 2.0.0
יצירה, קריאה או מחיקה של נתונים במסד נתונים של Cloud Firestore.
התוכן הזה מכיל מידע שיעזור לכם להגדיר את התוסף הזה ולהשתמש בו. לפני שמשתמשים בתוסף הזה משרתי proxy של API, צריך:
יוצרים פרויקט 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>
נתוני השאילתה
בדוגמה הזו, המדיניות בנושא תוספי יתרונות מרכזיים שולחת שאילתה לאוסף 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.
שאילתה
שולחת שאילתה לאוסף לפי התנאים שצוינו ויוצרים מסנן.
הפרמטר queryArray
של הפעולה הזו מציין מערך של מערכי משנה (או מערך ריק אם אין תנאי סינון). כל מערך פנימי מציין תנאי של מסנן. מערכי משנה מרובים מייצגים כמה תנאים שמקושרים באמצעות אופרטור AND.
כל רכיב במערך תנאי פנימי מייצג חלק מהתנאי. מערך תנאים תמיד מכיל את שלושת הרכיבים הבאים:
- רכיב שמאלי שקובע את שדה האוסף.
- רכיב אמצעי שמציין את האופרטור.
- רכיב שמימין שמציין את הערך של שדה הקולקציה.
בדוגמה הבאה מצוינים שני מערכי תנאים לסינון על סמך השדות 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 תקין. אין תמיכה במערכים. |
אובייקט | ללא. | לא. |
תשובה
ללא.
מסמך עזר בנושא הגדרות
השתמשו בהוראות הבאות כשמגדירים ומפרסים את התוסף הזה לשימוש בשרתי proxy ל-API. במאמר הוספה והגדרה של תוסף מוסבר איך להגדיר תוסף באמצעות מסוף Apigee.
מאפייני תוספים נפוצים
המאפיינים הבאים קיימים בכל תוסף.
נכס | תיאור | ברירת המחדל | נדרש |
---|---|---|---|
name |
השם שבחרת לתצורה הזו של התוסף. | ללא | כן |
packageName |
השם של חבילת התוסף כפי שהוא סופק על ידי Apigee Edge. | ללא | כן |
version |
מספר הגרסה של חבילת התוסף שממנה מגדירים את התוסף. | ללא | כן |
configuration |
ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו | ללא | כן |
הנכסים של חבילת התוספים הזו
נכס | תיאור | ברירת מחדל | חובה |
---|---|---|---|
firestoreDB | כתובת ה-URL של מסד הנתונים של Cloud Firestore שבו התוסף הזה אמור להשתמש כששולח בקשות. בדרך כלל כתובת ה-URL הזו מקבלת את הפורמט https://DATABASE_NAME.firebaseio.com . |
ללא. | כן. |
פרטי כניסה | כשמזינים את השדה הזה במסוף Apigee Edge, הוא מכיל את התוכן של קובץ המפתח שיצרתם לפי ההוראות של Firebase. כששולחים אותו דרך ה-Management API, הוא ערך בקידוד Base64 שנוצר מקובץ המפתח. | ללא. | כן. |