रिमोट कॉन्फ़िगरेशन कंडिशनल एक्सप्रेशन का रेफ़रंस

इस पेज पर, Remote Config बैकएंड एपीआई या Firebase कंसोल का इस्तेमाल करके, कंडीशनल एक्सप्रेशन बनाने के बारे में रेफ़रंस जानकारी दी गई है. बैकएंड एपीआई को सेट अप करने और इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन में प्रोग्राम के हिसाब से बदलाव करना लेख पढ़ें.

शर्तें बनाने के लिए इस्तेमाल किए जाने वाले एलिमेंट

Remote Config REST API उन ही एलिमेंट के साथ काम करता है जिनका इस्तेमाल, Firebase कंसोल का इस्तेमाल करके Remote Config को कॉन्फ़िगर करते समय शर्तें तय करने के लिए किया जा सकता है:

तत्व ब्यौरा
&&

किसी शर्त के लिए एक से ज़्यादा एलिमेंट का इस्तेमाल करने पर, एलिमेंट के लॉजिकल "और" बनाने के लिए इस्तेमाल किया जाता है. अगर किसी एलिमेंट का इस्तेमाल, && के बिना REST सिंटैक्स में किया जाता है, तो उस एलिमेंट को शर्त के तौर पर माना जाता है.

ध्यान दें: ऐंपरसैंड से पहले और बाद में स्पेस होना ज़रूरी है. उदाहरण के लिए: element1 && element2.

app.build

ऐप्लिकेशन के बिल्ड नंबर की वैल्यू के आधार पर, TRUE या FALSE का आकलन करता है.

ध्यान दें: यह सुविधा सिर्फ़ Apple और Android डिवाइसों पर उपलब्ध है. Apple के लिए, CFBundleVersion की वैल्यू का इस्तेमाल करें. वहीं, Android के लिए, versionCode की वैल्यू का इस्तेमाल करें.

app.version

ऐप्लिकेशन के वर्शन नंबर की वैल्यू के आधार पर, TRUE या FALSE का आकलन करता है.

ध्यान दें: Android डिवाइसों के लिए, versionName की वैल्यू का इस्तेमाल करें. वहीं, Apple डिवाइसों के लिए, CFBundleShortVersionString की वैल्यू का इस्तेमाल करें.

app.id ऐप्लिकेशन के Firebase ऐप्लिकेशन आईडी पर आधारित एलिमेंट
app.audiences यह एक ऐसा एलिमेंट है जो उपयोगकर्ता के एक या एक से ज़्यादा Firebase Analytics ऑडियंस में मौजूद होने या न होने के आधार पर, TRUE या FALSE का आकलन करता है.
app.firstOpenTimestamp जब कोई उपयोगकर्ता किसी ऐप्लिकेशन को पहली बार लॉन्च करता है, तो उससे जुड़ा एलिमेंट. यह एलिमेंट, Google Analytics first_open इवेंट से मिलता है. तारीख के लिए ISO फ़ॉर्मैट का इस्तेमाल करता है. साथ ही, इसमें किसी तय टाइम ज़ोन को बताने का विकल्प भी होता है. उदाहरण के लिए, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). अगर कोई टाइम ज़ोन नहीं दिया गया है, तो जीएमटी का इस्तेमाल किया जाता है.
app.userProperty यह एक ऐसा एलिमेंट है जो Firebase Analytics उपयोगकर्ता प्रॉपर्टी की संख्या या स्ट्रिंग वैल्यू के आधार पर, TRUE या FALSE का आकलन करता है.
app.operatingSystemAndVersion

वह एलिमेंट जो उस ऑपरेटिंग सिस्टम पर आधारित होता है जिस पर ऐप्लिकेशन चल रहा है. जब ओएस और ओएस वर्शन, तय किए गए टारगेट से मैच करता है, तो इसका आकलन TRUE के तौर पर किया जाता है.

ध्यान दें: यह सुविधा सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध है.

app.browserAndVersion

वह एलिमेंट जो उस ब्राउज़र पर आधारित होता है जिस पर ऐप्लिकेशन चल रहा है. जब ब्राउज़र और ब्राउज़र वर्शन, तय किए गए टारगेट से मैच करता है, तो TRUE का आकलन किया जाता है.

ध्यान दें: यह सुविधा सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध है.

app.firebaseInstallationId यह एलिमेंट, खास डिवाइस इंस्टॉलेशन के आईडी पर आधारित होता है. जब इंस्टॉलेशन आईडी , दिए गए इंस्टॉलेशन आईडी से मेल खाता है, तो यह वैल्यू TRUE पर सेट हो जाती है.
device.country यह एलिमेंट, उस देश/इलाके के आधार पर तय होता है जहां डिवाइस मौजूद है. इसके लिए, आईएसओ 3166-1 alpha-2 स्टैंडर्ड (उदाहरण के लिए, अमेरिका या यूनाइटेड किंगडम) का इस्तेमाल किया जाता है. जब कोई देश, अनुमानित देश कोड से मैच करता है, तो इसका आकलन TRUE के तौर पर किया जाता है.
device.dateTime यह एलिमेंट, डिवाइस के आखिरी फ़ेच के समय पर आधारित होता है. तय टाइम ज़ोन की जानकारी देने के लिए, ISO तारीख फ़ॉर्मैट का इस्तेमाल करता है. उदाहरण के लिए, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language डिवाइस पर चुनी गई भाषा के आधार पर एलिमेंट. भाषा को आईईटीएफ़ भाषा टैग का इस्तेमाल करके दिखाया जाता है, जैसे कि es-ES, pt-BR या en-US. जब कोई भाषा, अनुमानित भाषा कोड से मेल खाती है, तो TRUE का आकलन किया जाता है.
device.os डिवाइस पर इस्तेमाल किए जा रहे ऑपरेटिंग सिस्टम (Apple या Android) के आधार पर बनाया गया एलिमेंट. डिवाइस का ओएस सही होने पर, इसकी वैल्यू TRUE होती है.
percent उपयोगकर्ता को रैंडम तरीके से असाइन किए गए आंशिक प्रतिशत (सैंपल साइज़ 0.000001% तक के साथ) में शामिल करने के आधार पर, TRUE का आकलन किया जाता है.

सिंगल-एलिमेंट कंडीशन में तीन फ़ील्ड होते हैं:

  1. अपनी पसंद के मुताबिक तय किया गया name (ज़्यादा से ज़्यादा 100 वर्ण)
  2. ऊपर दिखाए गए एलिमेंट से बना शर्त वाला एक्सप्रेशन, जो TRUE या FALSE का आकलन करता है.
  3. (ज़रूरी नहीं) tagColor, जो "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE" या "TEAL" हो सकता है. रंग के लिए केस-सेंसिटिविटी लागू नहीं होती. इसका असर सिर्फ़ Firebase कंसोल में शर्तों के दिखने के तरीके पर पड़ता है.

ये ऑपरेटर इस्तेमाल किए जा सकते हैं

उदाहरण के लिए, अगर ऐप्लिकेशन का असल बिल्ड 123 या 492 है, तो app.build.notContains([123, 456]) TRUE दिखाता है. हालांकि, अगर ऐप्लिकेशन का असल बिल्ड 999 है, तो FALSE दिखाता है. उदाहरण के लिए, अगर ऐप्लिकेशन का असल वर्शन 123 या 492 है, तो app.version.notContains([123, 456]) TRUE दिखाता है. हालांकि, अगर ऐप्लिकेशन का असल वर्शन 999 है, तो FALSE दिखाता है.
तत्व ये ऑपरेटर इस्तेमाल किए जा सकते हैं ब्यौरा
app.audiences .inAtLeastOne([...]) अगर असल ऑडियंस, सूची में मौजूद कम से कम एक ऑडियंस के नाम से मैच करती है, तो TRUE दिखाता है.
उदाहरण के लिए:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...]) अगर असली ऑडियंस, सूची में मौजूद कम से कम एक ऑडियंस के नाम से मेल नहीं खाती है, तो TRUE दिखाता है.
app.audiences .inAll([...]) अगर असल ऑडियंस, सूची में मौजूद हर ऑडियंस के नाम का सदस्य है, तो TRUE दिखाता है.
app.audiences .notInAll([...]) अगर असल ऑडियंस, सूची में मौजूद किसी भी ऑडियंस का सदस्य नहीं है, तो TRUE दिखाता है.
app.firstOpenTimestamp <=, > first_open इवेंट के समय की तुलना, शर्त में बताए गए समय से करता है. साथ ही, ऑपरेटर के आधार पर TRUE या FALSE दिखाता है.
इस्तेमाल का उदाहरण:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
कोई रेंज तय करने के लिए:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') अगर कोई टाइम ज़ोन नहीं दिया गया है, तो जीएमटी का इस्तेमाल किया जाता है.
app.userProperty <, <=, ==, !=, >=, > अगर ऑपरेटर से मैच करने वाले तरीके से, उपयोगकर्ता प्रॉपर्टी की संख्या, वैल्यू से मेल खाती है, तो TRUE दिखाता है.
app.userProperty .contains([...]) अगर टारगेट की कोई वैल्यू, असल उपयोगकर्ता प्रॉपर्टी की सबस्ट्रिंग है, तो TRUE दिखाता है.
app.userProperty .notContains([...]) अगर कोई भी टारगेट वैल्यू, असल उपयोगकर्ता प्रॉपर्टी की सबस्ट्रिंग नहीं है, तो TRUE दिखाता है.
app.userProperty .exactlyMatches([...]) अगर असल उपयोगकर्ता प्रॉपर्टी, सूची में मौजूद टारगेट वैल्यू में से किसी भी वैल्यू से पूरी तरह मैच करती है, तो TRUE दिखाता है. इसमें केस-सेंसिटिविटी का ध्यान रखा जाता है.
app.userProperty .matches([...]) अगर सूची में मौजूद कोई टारगेट रेगुलर एक्सप्रेशन, असल वैल्यू की सबस्ट्रिंग या पूरी वैल्यू से मैच करता है, तो TRUE दिखाता है. पूरी स्ट्रिंग से मैच करने के लिए, रेगुलर एक्सप्रेशन के शुरू में "^" और आखिर में "$" लगाएं. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.
app.id == अगर दी गई वैल्यू, ऐप्लिकेशन के ऐप्लिकेशन आईडी से मेल खाती है, तो TRUE दिखाता है.
app.build <, <=, ==, !=, >=, > अगर असल ऐप्लिकेशन बिल्ड की संख्या, ऑपरेटर से मैच करने वाली वैल्यू से मेल खाती है, तो TRUE दिखाता है.
app.build .contains([...]) अगर टारगेट की कोई वैल्यू, ऐप्लिकेशन के असल बिल्ड की सबस्ट्रिंग है, तो TRUE दिखाता है. उदाहरण के लिए, "a" और "bc", "abc" की सबस्ट्रिंग हैं.
app.build .notContains([...]) अगर कोई भी टारगेट वैल्यू, ऐप्लिकेशन के असल बिल्ड की सबस्ट्रिंग नहीं है, तो TRUE दिखाता है.
app.build .exactlyMatches([...]) अगर असल ऐप्लिकेशन बिल्ड, सूची में मौजूद टारगेट वैल्यू में से किसी से पूरी तरह मैच होता है, तो यह TRUE दिखाता है.
app.build .matches([...]) अगर सूची में मौजूद कोई टारगेट रेगुलर एक्सप्रेशन, असली वैल्यू की सबस्ट्रिंग या पूरी वैल्यू से मैच करता है, तो TRUE दिखाता है. पूरी स्ट्रिंग के साथ मैच करने के लिए, रेगुलर एक्सप्रेशन के पहले "^" और आखिर में "$" लगाएं. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.
app.version <, <=, ==, !=, >=, > अगर ऐप्लिकेशन का असल वर्शन, ऑपरेटर से मैच करने वाले तरीके से दी गई वैल्यू से संख्या के हिसाब से मैच करता है, तो TRUE दिखाता है.
app.version .contains([...]) अगर टारगेट की कोई वैल्यू, ऐप्लिकेशन के असल वर्शन की सबस्ट्रिंग है, तो TRUE दिखाता है. उदाहरण के लिए, "a" और "bc", "abc" की सबस्ट्रिंग हैं.
app.version .notContains([...]) अगर कोई भी टारगेट वैल्यू, ऐप्लिकेशन के असल वर्शन की सबस्ट्रिंग नहीं है, तो TRUE दिखाता है.
app.version .exactlyMatches([...]) अगर ऐप्लिकेशन का असल वर्शन, सूची में मौजूद टारगेट वैल्यू में से किसी से पूरी तरह मैच होता है, तो यह फ़ंक्शन TRUE दिखाता है.
app.version .matches([...]) अगर सूची में मौजूद कोई टारगेट रेगुलर एक्सप्रेशन, असली वैल्यू की सबस्ट्रिंग या पूरी वैल्यू से मैच करता है, तो TRUE दिखाता है. पूरी स्ट्रिंग के साथ मैच करने के लिए, रेगुलर एक्सप्रेशन के पहले "^" और आखिर में "$" लगाएं. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.
app.operatingSystemAndVersion .inOne([...]) अगर ओएस और वर्शन, सूची में मौजूद टारगेट वैल्यू में से किसी से मैच होता है, तो TRUE दिखाता है.
उदाहरण के लिए:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) अगर ब्राउज़र और वर्शन, सूची में मौजूद टारगेट वैल्यू में से किसी से मैच होता है, तो TRUE दिखाता है.
उदाहरण के लिए:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] अगर इंस्टॉलेशन आईडी, सूची में बताए गए किसी आईडी से मैच करता है, तो TRUE दिखाता है. इस्तेमाल के उदाहरण: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] अगर डिवाइस के देश का नाम, सूची में दिए गए किसी देश से मेल खाता है, तो TRUE दिखाता है. इस्तेमाल का उदाहरण: device.country in ['gb', 'us']. डिवाइस के देश का कोड, अनुरोध में डिवाइस के आईपी पते का इस्तेमाल करके तय किया जाता है. इसके अलावा, Firebase Analytics से तय किए गए देश के कोड का इस्तेमाल करके भी डिवाइस के देश का कोड तय किया जा सकता है. हालांकि, ऐसा तब ही किया जा सकता है, जब Analytics का डेटा Firebase के साथ शेयर किया गया हो.
device.dateTime <=, > यह मौजूदा समय की तुलना, शर्त के टारगेट समय से करता है. साथ ही, ऑपरेटर के आधार पर TRUE या FALSE का आकलन करता है. इस्तेमाल का सैंपल: dateTime < dateTime('2017-03-22T13:39:44').
device.language in [...] अगर ऐप्लिकेशन की कोई भाषा, सूची में मौजूद किसी भाषा से मैच करती है, तो TRUE दिखाता है. इस्तेमाल का उदाहरण: device.language in ['en-UK', 'en-US'].
device.os ==, != अगर डिवाइस का ऑपरेटिंग सिस्टम, ऑपरेटर से मैच करने वाले फ़ील्ड में मौजूद वैल्यू की तुलना करता है, तो TRUE दिखाता है.
percent <=, >, between अगर percent फ़ील्ड में मौजूद वैल्यू, ऑपरेटर से मैच करने वाली वैल्यू से तुलना होती है, तो TRUE दिखाता है.

शर्त के नियम के टाइप में बताए गए तरीके के मुताबिक, किसी तय प्रतिशत की सीमा के लिए, ऐप्लिकेशन इंस्टेंस का एक नया ग्रुप चुनने के लिए, आपके पास एक सीड तय करने का विकल्प होता है.

ऐसा करने के लिए, ऑपरेटर से पहले सीड का नाम दें, जैसा कि इस उदाहरण में बताया गया है:

percent('keyName') <= 10

किसी खास रेंज को कॉन्फ़िगर करने के लिए, between ऑपरेटर का इस्तेमाल किया जा सकता है. डिफ़ॉल्ट सीड का इस्तेमाल करके, 20 से 60 के बीच उपयोगकर्ताओं की रेंज कॉन्फ़िगर करने के लिए:

percent between 20 and 60

कस्टम सीड का इस्तेमाल करके, 60 से 80 के बीच उपयोगकर्ताओं की सीमा कॉन्फ़िगर करने के लिए:

percent('seedName') between 60 and 80