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

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

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

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

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

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

app.browserAndVersion

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

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

app.firebaseInstallationId एक ऐसा एलिमेंट जो खास डिवाइस इंस्टॉलेशन के आईडी के आधार पर होता है. इंस्टॉलेशन आईडी, बताए गए किसी एक इंस्टॉलेशन आईडी से मैच होने पर, TRUE के तौर पर नतीजा दिखाता है.
app.customSignal एक ऐसा एलिमेंट जो कस्टम सिग्नल की शर्तों की संख्या, सिमैंटिक या स्ट्रिंग वैल्यू के आधार पर, TRUE या FALSE के तौर पर नतीजा दिखाता है.
device.country एक ऐसा एलिमेंट जो उस इलाके/देश के आधार पर होता है जिसमें कोई डिवाइस मौजूद है. इसके लिए, ISO 3166-1 alpha-2 स्टैंडर्ड का इस्तेमाल किया जाता है. उदाहरण के लिए, US या UK. कोई देश, उम्मीद के मुताबिक देश के कोड से मैच होने पर, 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 किसी उपयोगकर्ता को, रैंडम तरीके से असाइन किए गए फ़्रैक्शनल प्रतिशत में शामिल करने के आधार पर, 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.build.notContains([123, 456]) का नतीजा TRUE होता है, अगर ऐप्लिकेशन का मौजूदा बिल्ड 123 या 492 है. हालांकि, अगर ऐप्लिकेशन का मौजूदा बिल्ड 999 है, तो इसका नतीजा FALSE होता है.

उदाहरण के लिए, app.version.notContains([123, 456]) का नतीजा TRUE होता है, अगर ऐप्लिकेशन का मौजूदा वर्शन 123 या 492 है. हालांकि, अगर ऐप्लिकेशन का मौजूदा वर्शन 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']

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