यह Apigee Edge के दस्तावेज़ हैं.
पर जाएं
Apigee X दस्तावेज़. info
वर्शन: 1.4.1
Cloud Firestore डेटाबेस में डेटा बनाएं, पढ़ें या मिटाएं.
इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इस्तेमाल करने के बारे में जानकारी दी गई है. एपीआई प्रॉक्सी से इस एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:
Firebase कंसोल में, एक Firebase प्रोजेक्ट बनाएं. इसमें आपका डेटा सेव किया जाता है.
कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके, एक्सटेंशन को जोड़ने और कॉन्फ़िगर करने के दौरान, जनरेट की गई कुंजी वाली JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.
Cloud Firestore के बारे में जानकारी
Cloud Firestore, डेटा को दस्तावेज़ों में सेव करता है. इन दस्तावेज़ों को कलेक्शन में सेव किया जाता है. जब पहली बार किसी दस्तावेज़ में डेटा जोड़ा जाता है, तो Cloud Firestore कलेक्शन और दस्तावेज़ अपने-आप बना लेता है. आपको कलेक्शन या दस्तावेज़ बनाने की ज़रूरत नहीं होती.
Cloud Firestore के बारे में ज़्यादा जानने के लिए, Cloud Firestore के दस्तावेज़ में Firestore का इस्तेमाल शुरू करना देखें.
सैंपल
यहां दिए गए उदाहरणों में, ExtensionCallout नीति का इस्तेमाल करके, Cloud Firestore एक्सटेंशन की कार्रवाइयों के लिए सहायता कॉन्फ़िगर करने का तरीका बताया गया है.
डेटा जोड़ें
यहां दी गई ExtensionCallout नीति, users कलेक्शन में freewill@example.com नाम का एक दस्तावेज़ जोड़ती है. 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 नीति, users कलेक्शन से freewill@example.com दस्तावेज़ की वैल्यू को वापस लाती है. यहां, <Output> एलिमेंट के parsed एट्रिब्यूट को 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 नीति, users कलेक्शन से lizzie@example.com दस्तावेज़ को मिटा देती है.
<?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 फ़ील्ड के हिसाब से फ़िल्टर किया जाता है. यहां, <Output> एलिमेंट के parsed एट्रिब्यूट को 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 फ़ॉर्मैट में दस्तावेज़ का कॉन्टेंट शामिल करने वाला ऑब्जेक्ट.
क्वेरी
फ़िल्टर बनाने वाली शर्तों को तय करके, किसी कलेक्शन के लिए क्वेरी करता है.
इस कार्रवाई का queryArray पैरामीटर, अरे का एक अरे तय करता है. फ़िल्टर करने की कोई शर्त न होने पर, यह खाली अरे होता है. हर इनर अरे, फ़िल्टर की एक शर्त तय करता है. एक से ज़्यादा इनर अरे, AND ऑपरेटर से जुड़ी एक से ज़्यादा शर्तें दिखाते हैं.
इनर कंडीशन अरे में मौजूद हर एलिमेंट, शर्त का एक हिस्सा दिखाता है. कंडीशन अरे में हमेशा ये तीन एलिमेंट होते हैं:
- एक लेफ्ट एलिमेंट, जो कलेक्शन फ़ील्ड तय करता है.
- एक मिडल एलिमेंट, जो ऑपरेटर तय करता है.
- एक राइट एलिमेंट, जो कलेक्शन फ़ील्ड की वैल्यू तय करता है.
यहां दिए गए उदाहरण में, कलेक्शन के state और population फ़ील्ड के आधार पर फ़िल्टर करने के लिए, दो कंडीशन अरे तय किए गए हैं:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
रनटाइम पर, इस कार्रवाई को क्वेरी के तौर पर समझा जाता है. जैसे:
उन सभी शहरों को चुनें जहां state = 'CA' और population < 10,00,000 है
Cloud Firestore में, एक से ज़्यादा शर्तों वाली क्वेरी को कंपोज़िट इंडेक्स की मदद से इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी के लिए, Cloud Firestore में इंडेक्स के टाइप देखें.
अनुरोध के पैरामीटर
सिंटैक्स
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
उदाहरण
इस उदाहरण में, queryArray पैरामीटर, दो शर्तें तय करता है. इनके आधार पर, colName पैरामीटर से तय किए गए cities कलेक्शन को फ़िल्टर किया जाता है.
Cloud Firestore में, एक से ज़्यादा शर्तों वाली क्वेरी को कंपोज़िट इंडेक्स की मदद से इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी के लिए, Cloud Firestore में इंडेक्स के टाइप देखें.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
रनटाइम पर, इस कार्रवाई को क्वेरी के तौर पर समझा जाता है. जैसे:
उन सभी शहरों को चुनें जहां state = 'CA' और population < 10,00,000 है
| पैरामीटर | ब्यौरा | टाइप | डिफ़ॉल्ट | ज़रूरी है |
|---|---|---|---|---|
| colName | क्वेरी किए जाने वाले कलेक्शन का नाम. | स्ट्रिंग | कोई नहीं. | हां. |
| queryArray | कंडीशन अरे का एक अरे, जो मिलकर फ़िल्टर के हिस्से तय करता है. शर्तों को शामिल न करने के लिए, एक खाली अरे तय करें. इससे नतीजों को फ़िल्टर नहीं किया जाएगा. | Array | कोई नहीं. | हां. |
जवाब
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 ऑब्जेक्ट होना चाहिए. अरे का इस्तेमाल नहीं किया जा सकता. |
ऑब्जेक्ट | कोई नहीं. | नहीं. |
जवाब
कोई नहीं.
कॉन्फ़िगरेशन रेफ़रंस
एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय, यहां दी गई जानकारी का इस्तेमाल करें. Apigee कंसोल का इस्तेमाल करके, किसी एक्सटेंशन को कॉन्फ़िगर करने के लिए, एक्सटेंशन जोड़ना और कॉन्फ़िगर करना देखें.
एक्सटेंशन की सामान्य प्रॉपर्टी
हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.
| प्रॉपर्टी | जानकारी | डिफ़ॉल्ट | ज़रूरी है |
|---|---|---|---|
name |
वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. | कभी नहीं | हां |
packageName |
एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. | कभी नहीं | हां |
version |
उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. | कभी नहीं | हां |
configuration |
आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें | कभी नहीं | हां |
इस एक्सटेंशन पैकेज की प्रॉपर्टी
| प्रॉपर्टी | ब्यौरा | डिफ़ॉल्ट | ज़रूरी है |
|---|---|---|---|
| firestoreDB | Cloud Firestore डेटाबेस का यूआरएल. अनुरोध करते समय, इस एक्सटेंशन को इस यूआरएल का इस्तेमाल करना चाहिए. आम तौर पर, इस यूआरएल का फ़ॉर्मैट https://DATABASE_NAME.firebaseio.com होता है. |
कोई नहीं. | हां. |
| credentials | Apigee Edge कंसोल में डालने पर, यह Firebase के निर्देशों के मुताबिक जनरेट की गई कुंजी वाली फ़ाइल का कॉन्टेंट होता है. मैनेजमेंट एपीआई के ज़रिए भेजे जाने पर, यह कुंजी वाली फ़ाइल से जनरेट की गई, base64 में एनकोड की गई वैल्यू होती है. | कोई नहीं. | हां. |