תוסף של Google Cloud Firestore

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

גרסה: 1.2.0

ליצור, לקרוא או למחוק נתונים במסד נתונים של Cloud Firestore.

התוכן הזה כולל חומר עזר להגדרת התוסף הזה ולשימוש בו. לפני שמשתמשים בתוסף הזה משרת proxy ל-API, צריך:

  1. יוצרים פרויקט Firebase במסוף Firebase שבו הנתונים מאוחסנים.

  2. יוצרים מפתח לחשבון השירות.

  3. משתמשים בתוכן של קובץ ה-JSON של המפתח שנוצר כשמוסיפים ומגדירים את התוסף באמצעות קובץ התצורה.

מידע על Cloud Firestore

Cloud Firestore מאחסן נתונים במסמכים שמאוחסנים באוספים. Cloud Firestore יוצר אוספים ומסמכים באופן לא מפורש בפעם הראשונה שתוסיפו נתונים למסמך. אין צורך ליצור אוספים או מסמכים באופן מפורש.

מידע נוסף על Cloud Firestore אפשר למצוא במאמר בנושא תחילת העבודה עם Firestore במאמרי העזרה של Cloud Firestore.

דוגמאות

הדוגמאות הבאות ממחישות איך להגדיר תמיכה בפעולות של תוסף Cloud Firestore באמצעות מדיניות יתרונות מרכזיים של תוסף.

הוספת נתונים

בעקבות המדיניות הבאה בנושא תוספי יתרונות מרכזיים, יתווסף מסמך בשם 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>

לפרטים

בדוגמה הזו, המדיניות בנושא תוספי יתרונות מרכזיים מאחזרת את הערך של המסמך 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>

במדיניות הבאה של הקצאת הודעה נעשה שימוש בערך של המשתנה שמאחסן את התגובה של התוסף כדי להקצות את המטען הייעודי (payload) של התגובה.

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

מחיקת נתונים

בדוגמה הזו, המדיניות בנושא תוספי יתרונות מרכזיים מוחקת את המסמך 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>

במדיניות הבאה של הקצאת הודעה נעשה שימוש בערך של המשתנה שמאחסן את התגובה של התוסף כדי להקצות את המטען הייעודי (payload) של התגובה.

<?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' ואוכלוסייה < 1000,000

שאילתה שכוללת כמה תנאים חייבת לתמוך ב-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' ואוכלוסייה < 1000,000

פרמטר תיאור סוג ברירת מחדל חובה
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. ללא. כן.
פרטי כניסה זה התוכן של קובץ המפתח שיצרתם, עם הוראות ל-Firebase שהזנתם במסוף Apigee Edge. הערך הזה נשלח דרך ממשק ה-API לניהול, בקידוד base64 שנוצר מקובץ המפתח. ללא. כן.