Google Cloud Firestore एक्सटेंशन

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

वर्शन: 1.2.0

Cloud Firestore डेटाबेस में डेटा बनाएं, पढ़ें या मिटाएं.

इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इसका इस्तेमाल करने के बारे में जानकारी दी गई है. किसी API प्रॉक्सी से इस एक्सटेंशन का उपयोग करने से पहले, आपको यह करना होगा:

  1. Firebase कंसोल पर एक Firebase प्रोजेक्ट बनाएं, जहां आपका डेटा सेव होता है.

  2. सेवा खाते के लिए एक कुंजी जनरेट करना.

  3. कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके, एक्सटेंशन जोड़ते और कॉन्फ़िगर करते समय, नतीजे वाली कुंजी 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>

डेटा मिटाएं

इस उदाहरण में, एक्सटेंशन कॉलआउट नीति 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 फ़ील्ड के हिसाब से फ़िल्टर किया जाता है. यहां <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>
पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
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>

रनटाइम के दौरान, इस कार्रवाई को एक क्वेरी के तौर पर समझा जाता है. जैसे:

वे सभी शहर चुनें जहां राज्य = 'CA' है और जनसंख्या < 1,00,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' है और जनसंख्या < 1,00,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 कॉपी करना है. स्ट्रिंग कोई नहीं. हां.
डेटा docName में कॉपी किया जाने वाला डेटा. यह एक मान्य JSON ऑब्जेक्ट होना चाहिए. सरणियों का इस्तेमाल नहीं किया जा सकता. ऑब्जेक्ट कोई नहीं. नहीं.

जवाब

कोई नहीं.

कॉन्फ़िगरेशन रेफ़रंस

एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय, इनका इस्तेमाल करें. Apigee कंसोल का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और उसे कॉन्फ़िगर करना लेख पढ़ें.

सामान्य एक्सटेंशन प्रॉपर्टी

हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.

प्रॉपर्टी जानकारी डिफ़ॉल्ट ज़रूरी है
name वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. कभी नहीं हां
packageName एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. कभी नहीं हां
version उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. कभी नहीं हां
configuration आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें कभी नहीं हां

इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी

प्रॉपर्टी ब्यौरा डिफ़ॉल्ट ज़रूरी है
firestoreDB Cloud Firestore डेटाबेस का यूआरएल, जिसके लिए इस एक्सटेंशन को अनुरोध करने के दौरान इस्तेमाल करना चाहिए. यह यूआरएल आम तौर पर https://DATABASE_NAME.firebaseio.com रूप में होता है. कोई नहीं. हां.
क्रेडेंशियल Apigee Edge कंसोल में डाला गया मुख्य फ़ाइल का कॉन्टेंट, Firebase के निर्देशों की मदद से जनरेट होता है. मैनेजमेंट एपीआई की मदद से भेजे जाने पर, यह base64 कोड में बदली गई वैल्यू होती है. यह कुंजी फ़ाइल से जनरेट होती है. कोई नहीं. हां.