คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
เวอร์ชัน: 1.4.1
สร้าง อ่าน หรือลบข้อมูลในฐานข้อมูล Cloud Firestore
เนื้อหานี้มีข้อมูลอ้างอิงสำหรับการกำหนดค่าและการใช้ส่วนขยายนี้ ก่อนใช้ส่วนขยายนี้จากพร็อกซี 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>
นโยบาย Assign Message ต่อไปนี้ใช้ค่าของตัวแปรที่เก็บการตอบกลับของส่วนขยายเพื่อกำหนดเพย์โหลดการตอบกลับ
<?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>
นโยบาย Assign Message ต่อไปนี้ใช้ค่าของตัวแปรที่เก็บการตอบกลับของส่วนขยายเพื่อกำหนดเพย์โหลดการตอบกลับ
<?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
องค์ประกอบแต่ละรายการในอาร์เรย์เงื่อนไขภายในจะแสดงส่วนหนึ่งของเงื่อนไข อาร์เรย์เงื่อนไขจะมีองค์ประกอบ 3 รายการต่อไปนี้เสมอ
- องค์ประกอบด้านซ้ายที่ระบุช่องคอลเล็กชัน
- องค์ประกอบตรงกลางที่ระบุโอเปอเรเตอร์
- องค์ประกอบด้านขวาที่ระบุค่าช่องคอลเล็กชัน
ตัวอย่างต่อไปนี้ระบุอาร์เรย์เงื่อนไข 2 รายการเพื่อกรองตามช่อง state และ population ของคอลเล็กชัน
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
เมื่อรันไทม์ ระบบจะตีความการดำเนินการนี้เป็นการค้นหา เช่น การค้นหาต่อไปนี้
เลือกเมืองทั้งหมดที่รัฐ = 'CA' และประชากร < 1,000,000
การค้นหาที่มีเงื่อนไขหลายรายการต้องได้รับการรองรับใน Cloud Firestore ด้วยดัชนีผสม ดูข้อมูลเพิ่มเติมได้ที่ประเภทดัชนีใน Cloud Firestore
พารามิเตอร์คำขอ
ไวยากรณ์
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
ตัวอย่าง
ในตัวอย่างนี้ พารามิเตอร์ queryArray จะระบุเงื่อนไข 2 รายการที่จะใช้กรองคอลเล็กชัน cities ที่ระบุโดยพารามิเตอร์ colName
การค้นหาที่มีเงื่อนไขหลายรายการต้องได้รับการรองรับใน Cloud Firestore ด้วยดัชนีผสม ดูข้อมูลเพิ่มเติมได้ที่ประเภทดัชนีใน Cloud Firestore
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
เมื่อรันไทม์ ระบบจะตีความการดำเนินการนี้เป็นการค้นหา เช่น การค้นหาต่อไปนี้
เลือกเมืองทั้งหมดที่รัฐ = 'CA' และประชากร < 1,000,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 ไปยัง |
สตริง | ไม่มี | ได้ |
| data | ข้อมูลที่จะคัดลอกไปยัง docName ซึ่งต้องเป็นออบเจ็กต์ JSON ที่ถูกต้อง ระบบไม่รองรับอาร์เรย์ |
ออบเจ็กต์ | ไม่มี | ไม่ |
การตอบกลับ
ไม่มี
ข้อมูลอ้างอิงการกำหนดค่า
ใช้ข้อมูลต่อไปนี้เมื่อกำหนดค่าและใช้งานส่วนขยายนี้เพื่อใช้ในพร็อกซี API ดูขั้นตอนการกำหนดค่าส่วนขยายโดยใช้คอนโซล Apigee ได้ที่หัวข้อการเพิ่มและการกำหนดค่าส่วนขยาย
พร็อพเพอร์ตี้ส่วนขยายทั่วไป
พร็อพเพอร์ตี้ต่อไปนี้มีอยู่ในส่วนขยายทุกรายการ
| พร็อพเพอร์ตี้ | คำอธิบาย | ค่าเริ่มต้น | ต้องระบุ |
|---|---|---|---|
name |
ชื่อที่คุณกําหนดให้การกําหนดค่านี้ของส่วนขยาย | ไม่มี | ได้ |
packageName |
ชื่อแพ็กเกจส่วนขยายที่ระบุโดย Apigee Edge | ไม่มี | ได้ |
version |
หมายเลขเวอร์ชันของแพ็กเกจส่วนขยายที่คุณกําหนดค่าส่วนขยาย | ไม่มี | ได้ |
configuration |
ค่าการกําหนดค่าเฉพาะสําหรับส่วนขยายที่คุณกําลังเพิ่ม ดูพร็อพเพอร์ตี้สําหรับแพ็กเกจส่วนขยายนี้ | ไม่มี | ได้ |
พร็อพเพอร์ตี้สำหรับแพ็กเกจส่วนขยายนี้
| พร็อพเพอร์ตี้ | คำอธิบาย | ค่าเริ่มต้น | ต้องระบุ |
|---|---|---|---|
| firestoreDB | URL ไปยังฐานข้อมูล Cloud Firestore ที่ส่วนขยายนี้ควรใช้เมื่อทำการส่งคำขอ โดยปกติ URL นี้จะมีรูปแบบเป็น https://DATABASE_NAME.firebaseio.com |
ไม่มี | ได้ |
| credentials | เมื่อป้อนในคอนโซล Apigee Edge เนื้อหานี้จะเป็นเนื้อหาของไฟล์คีย์ที่คุณสร้างขึ้นตามวิธีการของ Firebase เมื่อส่งผ่าน Management API จะเป็นค่าที่เข้ารหัสแบบ Base64 ซึ่งสร้างจากไฟล์คีย์ | ไม่มี | ได้ |