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

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

कंडिशन बनाने के लिए इस्तेमाल किए गए एलिमेंट

Remote Config REST API में उन सभी एलिमेंट का इस्तेमाल किया जा सकता है जिनका इस्तेमाल, Firebase Console का इस्तेमाल करके 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 यह एक ऐसा एलिमेंट है जिसकी वैल्यू, Google Analytics उपयोगकर्ता प्रॉपर्टी की संख्या या स्ट्रिंग वैल्यू के आधार पर TRUE या FALSE होती है.
app.operatingSystemAndVersion

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

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

app.browserAndVersion

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

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

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

एक एलिमेंट वाली शर्त में तीन फ़ील्ड होते हैं:

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

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

तत्व ये ऑपरेटर इस्तेमाल किए जा सकते हैं ब्यौरा
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') अगर कोई टाइम ज़ोन नहीं दिया गया है, तो GMT का इस्तेमाल किया जाता है.

app.userProperty <, <=, ==, !=, >=, >

अगर उपयोगकर्ता की मौजूदा प्रॉपर्टी की तुलना, ऑपरेटर से मेल खाने वाले तरीके से तय की गई वैल्यू से की जाती है, तो यह फ़ंक्शन TRUE दिखाता है.

app.userProperty .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, उपयोगकर्ता प्रॉपर्टी की सबस्ट्रिंग है, तो TRUE दिखाता है.

app.userProperty .notContains([...])

अगर टारगेट की गई कोई भी वैल्यू, उपयोगकर्ता प्रॉपर्टी की सबस्ट्रिंग नहीं है, तो यह फ़ंक्शन TRUE दिखाता है.

app.userProperty .exactlyMatches([...])

अगर उपयोगकर्ता की प्रॉपर्टी, सूची में मौजूद टारगेट वैल्यू में से किसी से पूरी तरह मेल खाती है, तो TRUE दिखाता है. यह केस-सेंसिटिव (अक्षर और अंकों के कैपिटल और स्मॉल होने से फ़र्क़ पड़ता है) होता है.

app.userProperty .matches([...])

अगर सूची में मौजूद कोई भी टारगेट रेगुलर एक्सप्रेशन, असल वैल्यू की किसी सबस्ट्रिंग या पूरी वैल्यू से मेल खाता है, तो यह फ़ंक्शन TRUE दिखाता है. पूरी स्ट्रिंग का मिलान करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" लगाएं. RE2 सिंटैक्स का इस्तेमाल करता है.

app.id ==

अगर दी गई वैल्यू, ऐप्लिकेशन के App Id से मेल खाती है, तो TRUE दिखाता है.

app.build <, <=, ==, !=, >=, >

अगर ऐप्लिकेशन का मौजूदा बिल्ड, ऑपरेटर से मेल खाने वाले तरीके से तय की गई वैल्यू से संख्या के हिसाब से तुलना करता है, तो यह TRUE दिखाता है.

app.build .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, ऐप्लिकेशन के मौजूदा बिल्ड का सबस्ट्रिंग है, तो TRUE वैल्यू मिलती है. उदाहरण के लिए, "a" और "bc", "abc" के सबस्ट्रिंग हैं.

app.build .notContains([...])

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

app.build .exactlyMatches([...])

अगर ऐप्लिकेशन का मौजूदा बिल्ड, सूची में मौजूद टारगेट वैल्यू में से किसी से पूरी तरह मेल खाता है, तो यह फ़ंक्शन TRUE दिखाता है.

app.build .matches([...])

अगर सूची में मौजूद कोई भी टारगेट रेगुलर एक्सप्रेशन, असल वैल्यू की किसी सबस्ट्रिंग या पूरी वैल्यू से मेल खाता है, तो यह फ़ंक्शन TRUE दिखाता है. पूरी स्ट्रिंग का मिलान करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" लगाएं. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.

app.version <, <=, ==, !=, >=, >

अगर ऐप्लिकेशन का मौजूदा वर्शन, ऑपरेटर से मैच होने वाले तरीके से तय की गई वैल्यू से तुलना करने पर TRUE दिखाता है, तो यह फ़ंक्शन TRUE दिखाता है.

ध्यान दें: संख्या की तुलना करने वाले ऑपरेटर, सिर्फ़ संख्या वाले सिमैंटिक वर्शन (जैसे, 1.2.3) के साथ काम करते हैं. ये प्री-रिलीज़ सफ़िक्स या हाइफ़न (जैसे, -beta या -rc) के साथ काम नहीं करते. अगर वर्शन स्ट्रिंग में संख्या के अलावा अन्य सफ़िक्स या हाइफ़न शामिल हैं, तो स्ट्रिंग ऑपरेटर (जैसे, .matches या .contains) का इस्तेमाल करें.

app.version .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, ऐप्लिकेशन के मौजूदा वर्शन का सबस्ट्रिंग है, तो TRUE दिखाता है. उदाहरण के लिए, "a" और "bc", "abc" के सबस्ट्रिंग हैं.

app.version .notContains([...])

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

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']

app.customSignal <, <=, ==, !=, >=, >

अगर कस्टम सिग्नल की शर्त, ऑपरेटर से मेल खाने वाले तरीके से तय की गई वैल्यू से तुलना करती है, तो यह फ़ंक्शन TRUE दिखाता है.

app.customSignal .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, कस्टम सिग्नल की मौजूदा शर्त का सबस्ट्रिंग है, तो TRUE दिखाता है.

app.customSignal .notContains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, कस्टम सिग्नल की मौजूदा शर्त का सबस्ट्रिंग है, तो TRUE दिखाता है.

app.customSignal .exactlyMatches([...])

अगर कस्टम सिग्नल की मौजूदा शर्त, सूची में मौजूद किसी भी टारगेट वैल्यू से पूरी तरह मेल खाती है (केस-सेंसिटिव), तो यह फ़ंक्शन TRUE दिखाता है.

app.customSignal .matches([...])

अगर सूची में मौजूद कोई भी टारगेट रेगुलर एक्सप्रेशन, कस्टम सिग्नल की मौजूदा शर्त की सबस्ट्रिंग या पूरी शर्त से मेल खाता है, तो यह TRUE दिखाता है. पूरी स्ट्रिंग का मिलान करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" लगाएं. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.

version(app.customSignal) <, <=, ==, !=, >=, >

अगर कस्टम सिग्नल की शर्त, ऑपरेटर से मेल खाने वाले तरीके से दी गई वैल्यू से तुलना करती है, तो यह TRUE दिखाता है.

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