Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
वर्शन: 1.4.1
Cloud Firestore डेटाबेस में डेटा बनाएं, पढ़ें या मिटाएं.
इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इसका इस्तेमाल करने का रेफ़रंस दिया गया है. किसी API प्रॉक्सी से इस एक्सटेंशन का उपयोग करने से पहले, आपको:
Firebase कंसोल पर Firebase प्रोजेक्ट बनाएं, जहां आपका डेटा सेव किया जाता है.
कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके, एक्सटेंशन को जोड़ते और कॉन्फ़िगर करते समय, जनरेट हुई कुंजी JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.
Cloud Firestore के बारे में जानकारी
Cloud Firestore दस्तावेज़ों में डेटा सेव करता है, जो कलेक्शन में सेव होता है. जब आप दस्तावेज़ में पहली बार डेटा जोड़ते हैं, तो Cloud Firestore, कलेक्शन और दस्तावेज़ बना देता है. आपको अलग से कलेक्शन या दस्तावेज़ बनाने की ज़रूरत नहीं है.
Cloud Firestore के बारे में ज़्यादा जानकारी के लिए, Cloud Firestore दस्तावेज़ में 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>
डेटा पाएं
इस उदाहरण में, एक्सटेंशन कॉलआउट की नीति, 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>
नीचे दी गई मैसेज असाइन करें नीति, रिस्पॉन्स पेलोड असाइन करने के लिए, एक्सटेंशन के रिस्पॉन्स को स्टोर करने वाले वैरिएबल की वैल्यू का इस्तेमाल करती है.
<?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>
डेटा मिटाएं
इस उदाहरण में, एक्सटेंशन कॉलआउट की नीति, 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>
क्वेरी डेटा
इस उदाहरण में, एक्सटेंशन कॉलआउट नीति, 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>
नीचे दी गई मैसेज असाइन करें नीति, रिस्पॉन्स पेलोड असाइन करने के लिए, एक्सटेंशन के रिस्पॉन्स को स्टोर करने वाले वैरिएबल की वैल्यू का इस्तेमाल करती है.
<?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>
पैरामीटर | ब्यौरा | Type | डिफ़ॉल्ट | ज़रूरी है |
---|---|---|---|---|
colName | उस कलेक्शन का नाम जिसमें वह दस्तावेज़ है जिसे आपको मिटाना है. | String | कोई नहीं. | हां. |
docName | मिटाए जाने वाले दस्तावेज़ का नाम. | String | कोई नहीं. | हां. |
जवाब
कोई नहीं.
getDocument
एक दस्तावेज़ की सामग्री वापस लाता है.
अनुरोध के पैरामीटर
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
पैरामीटर | ब्यौरा | Type | डिफ़ॉल्ट | ज़रूरी है |
---|---|---|---|---|
colName | उस कलेक्शन का नाम जिससे दस्तावेज़ को वापस लाना है. | String | कोई नहीं. | हां. |
docName | उस दस्तावेज़ का नाम जिसे वापस लाना है. | String | कोई नहीं. | हां. |
जवाब
ऑब्जेक्ट में, दस्तावेज़ का कॉन्टेंट JSON फ़ॉर्मैट में है.
query
फ़िल्टर बनाने वाली शर्तों के आधार पर कलेक्शन को क्वेरी करता है.
इस कार्रवाई का queryArray
पैरामीटर, अरे की कैटगरी (या फ़िल्टर करने की शर्तों के बिना कोई खाली कलेक्शन) तय करता है. हर अंदरूनी अरे, किसी फ़िल्टर की शर्त तय करती है. कई अंदरूनी रेंज, AND ऑपरेटर के ज़रिए जोड़ी गई कई कंडिशन को दिखाती हैं.
इनर कंडिशन ऐरे में मौजूद हर एलिमेंट, कंडिशन के किसी हिस्से को दिखाता है. शर्त कलेक्शन में हमेशा ये तीन एलिमेंट होते हैं:
- कलेक्शन फ़ील्ड के बारे में जानकारी देने वाला बायां एलिमेंट.
- ऑपरेटर को बताने वाला बीच का एलिमेंट.
- कलेक्शन फ़ील्ड की वैल्यू बताने वाला राइट एलिमेंट.
इस उदाहरण में, कलेक्शन के state
और population
फ़ील्ड के आधार पर फ़िल्टर करने के लिए, शर्त वाले दो कलेक्शन तय किए गए हैं:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
रनटाइम पर, इस कार्रवाई को एक क्वेरी के तौर पर माना जाता है, जैसे कि:
वे सभी शहर चुनें जहां राज्य = 'CA' और जनसंख्या < 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>
रनटाइम पर, इस कार्रवाई को एक क्वेरी के तौर पर माना जाता है, जैसे कि:
वे सभी शहर चुनें जहां राज्य = 'CA' और जनसंख्या < 10,00,000 है
पैरामीटर | ब्यौरा | Type | डिफ़ॉल्ट | ज़रूरी है |
---|---|---|---|---|
colName | क्वेरी करने वाले कलेक्शन का नाम. | String | कोई नहीं. | हां. |
queryArray | शर्त से जुड़े कलेक्शन का कलेक्शन, जो एक साथ मिलकर किसी फ़िल्टर के हिस्सों की जानकारी देता है. शर्तों को छोड़ने के लिए, एक खाली कलेक्शन डालें (नतीजे फ़िल्टर न करें). | Array | कोई नहीं. | हां. |
जवाब
ऑब्जेक्ट में, दस्तावेज़ का कॉन्टेंट JSON फ़ॉर्मैट में है.
setDocument
दस्तावेज़ को Cloud Firestore कलेक्शन में कॉपी करता है. अगर कलेक्शन में दस्तावेज़ पहले से मौजूद है, तो यह उसे ओवरराइट कर देता है.
अनुरोध के पैरामीटर
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
पैरामीटर | ब्यौरा | Type | डिफ़ॉल्ट | ज़रूरी है |
---|---|---|---|---|
colName | उस कलेक्शन का नाम जिसमें दस्तावेज़ बनाना है. | String | कोई नहीं. | हां. |
docName | उस दस्तावेज़ का नाम जिसमें data को कॉपी किया जाना चाहिए. |
String | कोई नहीं. | हां. |
डेटा | docName में कॉपी किया जाने वाला डेटा. यह एक मान्य JSON ऑब्जेक्ट होना चाहिए. सरणियों का इस्तेमाल नहीं किया जा सकता. |
ऑब्जेक्ट | कोई नहीं. | नहीं. |
जवाब
कोई नहीं.
कॉन्फ़िगरेशन का रेफ़रंस
इस एक्सटेंशन को एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, कॉन्फ़िगर और डिप्लॉय करते समय, इनका इस्तेमाल करें. Apigee कंसोल का इस्तेमाल करके, एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और उसे कॉन्फ़िगर करना देखें.
सामान्य एक्सटेंशन प्रॉपर्टी
हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.
प्रॉपर्टी | जानकारी | डिफ़ॉल्ट | ज़रूरी है |
---|---|---|---|
name |
वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. | कभी नहीं | हां |
packageName |
एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. | कभी नहीं | हां |
version |
उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. | कभी नहीं | हां |
configuration |
आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें | कभी नहीं | हां |
इस एक्सटेंशन पैकेज की प्रॉपर्टी
प्रॉपर्टी | ब्यौरा | डिफ़ॉल्ट | ज़रूरी है |
---|---|---|---|
firestoreDB | Cloud Firestore डेटाबेस का यूआरएल, जिसका इस्तेमाल इस एक्सटेंशन को किसी भी समय अनुरोध करने के लिए करना चाहिए. आम तौर पर, यह यूआरएल https://DATABASE_NAME.firebaseio.com के रूप में होता है. |
कोई नहीं. | हां. |
क्रेडेंशियल | जब इसे Apigee Edge कंसोल में डाला जाता है, तो यह उस कुंजी फ़ाइल का कॉन्टेंट होता है जिसे आपने Firebase के निर्देशों के साथ जनरेट किया था. मैनेजमेंट एपीआई की मदद से भेजे जाने पर, यह Base64 कोड में बदली गई वैल्यू होती है. इसे कुंजी फ़ाइल से जनरेट किया जाता है. | कोई नहीं. | हां. |