תוסף של Google Cloud Firestore

אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X.
info

גרסה: 2.0.0

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

התוכן הזה מכיל מידע שיעזור לכם להגדיר את התוסף הזה ולהשתמש בו. לפני שמשתמשים בתוסף הזה משרתי proxy של 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>

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

<?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 שנוצר מקובץ המפתח. ללא. כן.