अपने ऐप्लिकेशन में पैरामीटर तय करने और उसे अपडेट करने के लिए, Firebase Remote Config का इस्तेमाल किया जा सकता है क्लाउड में इनकी वैल्यू इस्तेमाल की जा सकती हैं. इनकी मदद से, टेंप्लेट के काम करने के तरीके और लुक में बदलाव किया जा सकता है आपके ऐप्लिकेशन का अपडेट डिस्ट्रिब्यूट किए बिना. इस गाइड में, आपको YouTube Shopping का इस्तेमाल शुरू करने का तरीका बताया गया है. साथ ही, सैंपल कोड, जिसमें से सभी firebase/quickstart-android GitHub डेटा स्टोर करने की जगह.
पहला चरण: अपने ऐप्लिकेशन में Firebase और रिमोट कॉन्फ़िगरेशन SDK टूल जोड़ना
अगर आपने अब तक ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
Remote Config के लिए, Google Analytics ऐप्लिकेशन इंस्टेंस के लिए शर्त के हिसाब से टारगेटिंग उपयोगकर्ता प्रॉपर्टी और ऑडियंस में जोड़े जा सकते हैं. पक्का करें कि तो आपने अपने प्रोजेक्ट में Google Analytics को चालू किया है.
आपके मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल में (आम तौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
), Android के लिए Remote Config लाइब्रेरी के लिए डिपेंडेंसी जोड़ें. हमारा सुझाव है कि Firebase Android BoM लाइब्रेरी के वर्शन को कंट्रोल करने के लिए.इसके अलावा, Analytics सेट अप करने के दौरान, आपको Firebase SDK टूल जोड़ना होगा आपके ऐप्लिकेशन में Google Analytics के लिए.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependencies for the Remote Config and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-config") implementation("com.google.firebase:firebase-analytics") }
Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase Android लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.
(वैकल्पिक) BoM का इस्तेमाल करके, बिना Firebase लाइब्रेरी डिपेंडेंसी जोड़ें
अगर आपको Firebase BoM का इस्तेमाल नहीं करना है, तो आपको Firebase लाइब्रेरी का हर वर्शन बताना होगा इसकी डिपेंडेंसी लाइन में.
ध्यान दें कि अगर आप अपने ऐप्लिकेशन में कई Firebase लाइब्रेरी का इस्तेमाल करते हैं, तो हम लाइब्रेरी वर्शन को मैनेज करने के लिए, BoM का इस्तेमाल करने की सलाह दी जाती है. इससे यह पक्का होता है कि सभी वर्शन साथ काम करता है.
dependencies { // Add the dependencies for the Remote Config and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-config:22.0.0") implementation("com.google.firebase:firebase-analytics:22.1.0") }
दूसरा चरण: Remote Config सिंगलटन ऑब्जेक्ट पाना
Remote Config ऑब्जेक्ट इंस्टेंस पाएं और बार-बार रीफ़्रेश होने के लिए, फ़ेच करने का कम से कम इंटरवल:
Kotlin+KTX
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
सिंगलटन ऑब्जेक्ट का इस्तेमाल, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू को स्टोर करने, फ़ेच करने के लिए किया जाता है बैकएंड से अपडेट की गई पैरामीटर वैल्यू. साथ ही, फ़ेच की गई वैल्यू को कंट्रोल किया जा सकता है आपके ऐप्लिकेशन के लिए उपलब्ध कराया गया.
डेवलपमेंट के दौरान, यह सुझाव दिया जाता है कि फ़ेच किए जाने की संख्या, कम से कम कितनी हो अंतराल. थ्रॉटलिंग देखें हमारा वीडियो देखें.
तीसरा चरण: ऐप्लिकेशन में डिफ़ॉल्ट पैरामीटर वैल्यू को सेट करना
Remote Config में, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू को सेट किया जा सकता है ऑब्जेक्ट की बुकिंग करें, ताकि आपका ऐप्लिकेशन Remote Config बैकएंड में हो, ताकि कोई भी डिफ़ॉल्ट वैल्यू उपलब्ध न हो बैकएंड में सेट किया जा सकता है.
पैरामीटर के नामों और डिफ़ॉल्ट पैरामीटर वैल्यू का एक सेट तय करने के लिए, Map ऑब्जेक्ट या एक्सएमएल रिसॉर्स फ़ाइल आपके ऐप्लिकेशन के
res/xml
फ़ोल्डर में सेव किया गया. Remote Config क्विकस्टार्ट सैंपल ऐप्लिकेशन, एक्सएमएल फ़ाइल का इस्तेमाल करें.अगर आपने पहले से ही Remote Config बैकएंड पैरामीटर वैल्यू कॉन्फ़िगर की है, तो आपके पास जनरेट की गई एक ऐसी एक्सएमएल फ़ाइल डाउनलोड करने का विकल्प होता है जिसमें सभी डिफ़ॉल्ट वैल्यू शामिल हों और इसे अपने ऐप्लिकेशन की
res/xml
डायरेक्ट्री में सेव करें:REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=XML -o remote_config_defaults.xml
Firebase कंसोल
पैरामीटर में टैब, मेन्यू खोलें और डिफ़ॉल्ट वैल्यू डाउनलोड करें को चुनें.
जब कहा जाए, तब Android के लिए .xml चालू करें. इसके बाद, क्लिक करें फ़ाइल डाउनलोड करें.
इसका इस्तेमाल करके, इन वैल्यू को Remote Config ऑब्जेक्ट में जोड़ें
setDefaultsAsync(int)
, जैसा कि दिखाया गया है:Kotlin+KTX
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
चौथा चरण: अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर वैल्यू पाना
अब Remote Config ऑब्जेक्ट से पैरामीटर वैल्यू ली जा सकती हैं. अगर आपने सेट किया है, तो
वैल्यू को बैकएंड में इंपोर्ट करें, उन्हें फ़ेच करें, और फिर उन्हें चालू करें,
वे मान आपके ऐप्लिकेशन के लिए उपलब्ध हों. नहीं तो, आपको ऐप्लिकेशन में ही मिलेगा
पैरामीटर वैल्यू, इनका इस्तेमाल करके कॉन्फ़िगर की गई हैं
setDefaultsAsync(int)
.
ये वैल्यू पाने के लिए, नीचे दिए गए तरीके को कॉल करें जो डेटा टाइप के हिसाब से मैप होता है
आपके ऐप्लिकेशन से उम्मीद के मुताबिक, पैरामीटर कुंजी को तर्क के रूप में दें:
पांचवां चरण: Remote Config बैकएंड में पैरामीटर वैल्यू सेट करना
Firebase कंसोल या Remote Config बैकएंड एपीआई, आपके पास इन-ऐप्लिकेशन वैल्यू को बदलने वाली नई सर्वर साइड डिफ़ॉल्ट वैल्यू बनाने का विकल्प है और उपयोगकर्ता टारगेटिंग के हिसाब से तय करें. इस सेक्शन पर इन वैल्यू को बनाने के लिए, Firebase कंसोल के चरणों के बारे में बताता है.
- Firebase कंसोल में, अपना प्रोजेक्ट खोलें.
- Remote Config देखने के लिए, मेन्यू से Remote Config को चुनें डैशबोर्ड पर जाएं.
- आपके तय किए गए पैरामीटर से मिलते-जुलते नाम वाले पैरामीटर तय करें आपका ऐप्लिकेशन. हर पैरामीटर के लिए, एक डिफ़ॉल्ट वैल्यू सेट की जा सकती है (जो और आखिर में, संबंधित इन-ऐप्लिकेशन डिफ़ॉल्ट वैल्यू को बदल देता है) और और कंडिशनल वैल्यू सेट करना चाहिए. ज़्यादा जानने के लिए, Remote Config पैरामीटर और शर्तें.
छठा चरण: वैल्यू फ़ेच और चालू करना
- Remote Config बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए,
fetch()
तरीका. बैकएंड में सेट की गई सभी वैल्यू फ़ेच की जाती हैं और Remote Config ऑब्जेक्ट में सेव किया जाता है. अपने ऐप्लिकेशन में फ़ेच किए गए पैरामीटर मान उपलब्ध कराने के लिए,
activate()
तरीका.ऐसे मामलों में जहां आपको एक ही कॉल में वैल्यू फ़ेच और चालू करनी हों से वैल्यू फ़ेच करने के लिए,
fetchAndActivate()
अनुरोध का इस्तेमाल कर सकता है: Remote Config बैकएंड और उन्हें ऐप्लिकेशन में उपलब्ध कराने के लिए:Kotlin+KTX
remoteConfig.fetchAndActivate() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { val updated = task.result Log.d(TAG, "Config params updated: $updated") Toast.makeText( this, "Fetch and activate succeeded", Toast.LENGTH_SHORT, ).show() } else { Toast.makeText( this, "Fetch failed", Toast.LENGTH_SHORT, ).show() } displayWelcomeMessage() }
Java
mFirebaseRemoteConfig.fetchAndActivate() .addOnCompleteListener(this, new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { if (task.isSuccessful()) { boolean updated = task.getResult(); Log.d(TAG, "Config params updated: " + updated); Toast.makeText(MainActivity.this, "Fetch and activate succeeded", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "Fetch failed", Toast.LENGTH_SHORT).show(); } displayWelcomeMessage(); } });
क्योंकि अपडेट की गई ये पैरामीटर वैल्यू, व्यवहार और दिखने के तरीके पर असर डालती हैं तो आपको फ़ेच की गई वैल्यू को ऐसे समय पर चालू करना चाहिए जिससे यह पक्का हो सके कि आसानी से इस्तेमाल किया जा सकता है. जैसे, अगली बार जब उपयोगकर्ता आपका है. रिमोट कॉन्फ़िगरेशन लोड करने से जुड़ी रणनीतियां देखें पढ़ें.
सातवां चरण: रीयल टाइम में अपडेट सुनना
पैरामीटर की वैल्यू फ़ेच करने के बाद, इन कामों के लिए रीयल-टाइम Remote Config का इस्तेमाल किया जा सकता है Remote Config बैकएंड से अपडेट पाएँ. रीयल-टाइम अपडेट उपलब्ध होने पर, कनेक्ट किए गए डिवाइसों पर Remote Config सिग्नल और नया Remote Config पब्लिश करने के बाद, बदलावों को अपने-आप फ़ेच करता है वर्शन है.
रीयल-टाइम अपडेट, Firebase SDK टूल पर Android v21.3.0+ (Firebase BoM) के लिए काम करते हैं वर्शन 31.2.4+).
अपने ऐप्लिकेशन में
addOnConfigUpdateListener()
का इस्तेमाल करके, अपडेट सुनना शुरू करें और अपने-आप नई पैरामीटर वैल्यू फ़ेच कर लेता है.onUpdate()
लागू करें कॉलबैक करके अपडेट किया गया कॉन्फ़िगरेशन चालू करें.Kotlin+KTX
remoteConfig.addOnConfigUpdateListener(object : ConfigUpdateListener { override fun onUpdate(configUpdate : ConfigUpdate) { Log.d(TAG, "Updated keys: " + configUpdate.updatedKeys); if (configUpdate.updatedKeys.contains("welcome_message")) { remoteConfig.activate().addOnCompleteListener { displayWelcomeMessage() } } } override fun onError(error : FirebaseRemoteConfigException) { Log.w(TAG, "Config update error with code: " + error.code, error) } })
Java
mFirebaseRemoteConfig.addOnConfigUpdateListener(new ConfigUpdateListener() { @Override public void onUpdate(ConfigUpdate configUpdate) { Log.d(TAG, "Updated keys: " + configUpdate.getUpdatedKeys()); mFirebaseRemoteConfig.activate().addOnCompleteListener(new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { displayWelcomeMessage(); } }); } @Override public void onError(FirebaseRemoteConfigException error) { Log.w(TAG, "Config update error with code: " + error.getCode(), error); } });
अगली बार जब आप अपने Remote Config का नया वर्शन पब्लिश करेंगे, तो डिवाइसों पर जो आपका ऐप्लिकेशन चला रहे हैं और बदलावों को सुन रहे हैं, तो उनकी
ConfigUpdateListener
.
थ्रॉटलिंग
अगर कोई ऐप्लिकेशन कम समयावधि में कई बार फ़ेच करता है, तो फ़ेच कॉल
थ्रॉटल किया गया और SDK टूल वापस आ गया
FirebaseRemoteConfigFetchThrottledException
. SDK टूल के वर्शन 17.0.0 से पहले,
60 मिनट में, फ़ेच करने के लिए सिर्फ़ पांच अनुरोध किए जा सकते थे
विंडो (नए वर्शन में अनुमति की ज़्यादा सीमाएं होती हैं).
ऐप्लिकेशन डेवलपमेंट के दौरान, कॉन्फ़िगरेशन फ़ेच करने और उन्हें चालू करने की ज़रूरत पड़ सकती है
बार-बार (हर घंटे में कई बार) दिखाई देता है, ताकि आप अपनी साइट को डेवलप करते समय उसे तेज़ी से दोहरा सकें और
अपने ऐप्लिकेशन का परीक्षण करें. रीयल-टाइम Remote Config अपडेट अपने-आप
सर्वर पर कॉन्फ़िगरेशन अपडेट होने पर कैश मेमोरी में सेव करें. तेज़ी से टास्क पूरे करने के लिए
अधिकतम 10 डेवलपर वाले प्रोजेक्ट पर, आप
FirebaseRemoteConfigSettings
ऑब्जेक्ट, जिसके लिए फ़ेच करने के समय का कम से कम लेवल कम है
(setMinimumFetchIntervalInSeconds
) आपके ऐप्लिकेशन में.
Remote Config का डिफ़ॉल्ट फ़ेच इंटरवल कम से कम 12 घंटे का है. इसका मतलब है कि 12 घंटे में बैकएंड से एक से ज़्यादा बार कॉन्फ़िगरेशन फ़ेच नहीं किए जाएंगे विंडो के लिए कीमत सेट कर सकती है, चाहे असल में कितने फ़ेच कॉल किए गए हों. खास तौर पर, फ़ेच करने के लिए कम से कम इंटरवल इस क्रम में तय होता है:
fetch(long)
में मौजूद पैरामीटरFirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
में मौजूद पैरामीटर- 12 घंटे की डिफ़ॉल्ट वैल्यू
डेटा फ़ेच करने के लिए तय किया गया कम से कम इंटरवल, कस्टम वैल्यू पर सेट करने के लिए FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)
का इस्तेमाल करें.
अगले चरण
अगर आपने पहले से ऐसा नहीं किया है, तो Remote Config को एक्सप्लोर करें इस्तेमाल के कुछ उदाहरण देख सकते हैं. साथ ही, अहम सिद्धांतों और बेहतर रणनीतियों के दस्तावेज़ हैं. इनमें ये शामिल हैं: