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

इस पेज पर, Remote Config बैकएंड एपीआई या 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 यह एक ऐसा एलिमेंट है जो TRUE या FALSE के आधार पर यह तय करता है कि उपयोगकर्ता, एक या उससे ज़्यादा Firebase Analytics ऑडियंस में शामिल है या नहीं.
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 यह एलिमेंट, किसी डिवाइस पर ऐप्लिकेशन इंस्टॉल करने के आईडी पर आधारित होता है. अगर इंस्टॉलेशन आईडी, तय किए गए किसी इंस्टॉलेशन आईडी से मेल खाता है, तो इसकी वैल्यू 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]), अगर ऐप्लिकेशन का मौजूदा बिल्ड 123 या 492 है, तो TRUE दिखाता है. हालांकि, अगर ऐप्लिकेशन का मौजूदा बिल्ड 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