Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

फायरबेस रिमोट कॉन्फिग के साथ आरंभ करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.


आप अपने ऐप में पैरामीटर को परिभाषित करने और क्लाउड में उनके मान अपडेट करने के लिए फायरबेस रिमोट कॉन्फिग का उपयोग कर सकते हैं, जिससे आप ऐप अपडेट को वितरित किए बिना अपने ऐप की उपस्थिति और व्यवहार को संशोधित कर सकते हैं। यह मार्गदर्शिका आपको आरंभ करने के चरणों के बारे में बताती है और कुछ नमूना कोड प्रदान करती है, जो सभी फायरबेस/क्विकस्टार्ट-एंड्रॉइड गिटहब रिपोजिटरी से क्लोन या डाउनलोड करने के लिए उपलब्ध है।

चरण 1: अपने ऐप में फायरबेस और रिमोट कॉन्फिग एसडीके जोड़ें

  1. यदि आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें

  2. रिमोट कॉन्फिग के लिए, उपयोगकर्ता प्रॉपर्टी और ऑडियंस के लिए ऐप इंस्टेंस के सशर्त लक्ष्यीकरण के लिए Google Analytics आवश्यक है। सुनिश्चित करें कि आपने अपने प्रोजेक्ट में Google Analytics को सक्षम किया है।

  3. अपने मॉड्यूल (ऐप-स्तर) ग्रेड फ़ाइल (आमतौर पर <project>/<app-module>/build.gradle ) में, रिमोट कॉन्फ़िग एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें। हम लाइब्रेरी वर्जनिंग को नियंत्रित करने के लिए फायरबेस एंड्रॉइड बीओएम का उपयोग करने की सलाह देते हैं।

    साथ ही, Analytics सेट अप करने के भाग के रूप में, आपको अपने ऐप में Google Analytics के लिए Firebase SDK जोड़ना होगा।

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.5.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'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) BoM . का उपयोग किए बिना 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:21.1.2'
        implementation 'com.google.firebase:firebase-analytics:21.1.1'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.5.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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) BoM . का उपयोग किए बिना 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-ktx:21.1.2'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.1.1'
    }
    

चरण 2: रिमोट कॉन्फ़िगरेशन सिंगलटन ऑब्जेक्ट प्राप्त करें

रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट इंस्टेंस प्राप्त करें और बार-बार रीफ्रेश करने की अनुमति देने के लिए न्यूनतम फ़ेच अंतराल सेट करें:

Java

FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Kotlin+KTX

val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

सिंगलटन ऑब्जेक्ट का उपयोग इन-ऐप डिफ़ॉल्ट पैरामीटर मानों को संग्रहीत करने के लिए किया जाता है, बैकएंड से अपडेट किए गए पैरामीटर मान प्राप्त करते हैं, और जब आपके ऐप पर फ़ेच किए गए मान उपलब्ध कराए जाते हैं तो नियंत्रण करते हैं।

विकास के दौरान, अपेक्षाकृत कम न्यूनतम फ़ेच अंतराल सेट करने की अनुशंसा की जाती है। अधिक जानकारी के लिए थ्रॉटलिंग देखें।

चरण 3: इन-ऐप डिफ़ॉल्ट पैरामीटर मान सेट करें

आप रिमोट कॉन्फिग ऑब्जेक्ट में इन-ऐप डिफॉल्ट पैरामीटर मान सेट कर सकते हैं, ताकि आपका ऐप रिमोट कॉन्फिग बैकएंड से कनेक्ट होने से पहले जैसा व्यवहार करे, और ताकि बैकएंड में कोई भी सेट न होने पर डिफ़ॉल्ट मान उपलब्ध हों।

  1. अपने ऐप के res/xml फ़ोल्डर में संग्रहीत मैप ऑब्जेक्ट या XML संसाधन फ़ाइल का उपयोग करके पैरामीटर नामों और डिफ़ॉल्ट पैरामीटर मानों के एक सेट को परिभाषित करें। रिमोट कॉन्फिग क्विकस्टार्ट नमूना ऐप डिफ़ॉल्ट पैरामीटर नामों और मानों को परिभाषित करने के लिए एक्सएमएल फ़ाइल का उपयोग करता है।

    यदि आपने पहले से ही रिमोट कॉन्फिग बैकएंड पैरामीटर मानों को कॉन्फ़िगर किया है, तो आप एक जेनरेट की गई एक्सएमएल फ़ाइल डाउनलोड कर सकते हैं जिसमें सभी डिफ़ॉल्ट मान शामिल हैं और इसे अपने ऐप की res/xml निर्देशिका में सहेज सकते हैं:

    विश्राम

    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
    

    फायरबेस कंसोल

    1. पैरामीटर टैब में, मेनू खोलें, और डिफ़ॉल्ट मान डाउनलोड करें चुनें।

    2. संकेत मिलने पर, Android के लिए .xml सक्षम करें, फिर फ़ाइल डाउनलोड करें पर क्लिक करें।

  2. इन मानों को रिमोट कॉन्फिग ऑब्जेक्ट में setDefaultsAsync(int) का उपयोग करके जोड़ें, जैसा कि दिखाया गया है:

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

    Kotlin+KTX

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

चरण 4: अपने ऐप में उपयोग करने के लिए पैरामीटर मान प्राप्त करें

अब आप रिमोट कॉन्फिग ऑब्जेक्ट से पैरामीटर मान प्राप्त कर सकते हैं। यदि आप बैकएंड में मान सेट करते हैं, उन्हें प्राप्त करते हैं, और फिर उन्हें सक्रिय करते हैं, तो वे मान आपके ऐप के लिए उपलब्ध हैं। अन्यथा, आपको setDefaultsAsync(int) का उपयोग करके कॉन्फ़िगर किए गए इन-ऐप पैरामीटर मान मिलते हैं। इन मानों को प्राप्त करने के लिए, उस मानचित्र के नीचे सूचीबद्ध विधि को आपके ऐप द्वारा अपेक्षित डेटा प्रकार पर कॉल करें, पैरामीटर कुंजी को तर्क के रूप में प्रदान करें:

चरण 5: रिमोट कॉन्फिग बैकएंड में पैरामीटर मान सेट करें

फायरबेस कंसोल या रिमोट कॉन्फिग बैकएंड एपीआई का उपयोग करके, आप नए सर्वर-साइड डिफ़ॉल्ट मान बना सकते हैं जो आपके वांछित सशर्त तर्क या उपयोगकर्ता लक्ष्यीकरण के अनुसार इन-ऐप मानों को ओवरराइड करते हैं। यह खंड इन मानों को बनाने के लिए फायरबेस कंसोल चरणों का वर्णन करता है।

  1. फायरबेस कंसोल में, अपना प्रोजेक्ट खोलें।
  2. रिमोट कॉन्फिगर डैशबोर्ड देखने के लिए मेनू से रिमोट कॉन्फिगरेशन चुनें।
  3. पैरामीटर को उन्हीं नामों के साथ परिभाषित करें, जिन्हें आपने अपने ऐप में परिभाषित किया था। प्रत्येक पैरामीटर के लिए, आप एक डिफ़ॉल्ट मान सेट कर सकते हैं (जो अंततः संबंधित इन-ऐप डिफ़ॉल्ट मान को ओवरराइड कर देगा), और आप सशर्त मान भी सेट कर सकते हैं। अधिक जानने के लिए, दूरस्थ कॉन्फ़िगरेशन पैरामीटर और शर्तें देखें।

चरण 6: मान प्राप्त करें और सक्रिय करें

  1. रिमोट कॉन्फिग बैकएंड से पैरामीटर मान लाने के लिए, fetch() विधि को कॉल करें। बैकएंड में आपके द्वारा सेट किया गया कोई भी मान रिमोट कॉन्फिग ऑब्जेक्ट में लाया और संग्रहीत किया जाता है।
  2. अपने ऐप के लिए फ़ेच किए गए पैरामीटर मान उपलब्ध कराने के लिए, activate() विधि को कॉल करें।

    उन मामलों के लिए जहां आप एक कॉल में मान प्राप्त करना और सक्रिय करना चाहते हैं, आप रिमोट कॉन्फिग बैकएंड से मान प्राप्त करने और उन्हें ऐप पर उपलब्ध कराने के लिए एक fetchAndActivate() अनुरोध का उपयोग कर सकते हैं:

    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();
                }
            });

    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()
        }

चूंकि ये अपडेट किए गए पैरामीटर मान आपके ऐप के व्यवहार और दिखावट को प्रभावित करते हैं, इसलिए आपको ऐसे समय पर फ़ेच किए गए मानों को सक्रिय करना चाहिए जो आपके उपयोगकर्ता के लिए एक सहज अनुभव सुनिश्चित करता है, जैसे कि अगली बार जब उपयोगकर्ता आपका ऐप खोलता है। अधिक जानकारी और उदाहरणों के लिए रिमोट कॉन्फिग लोडिंग रणनीतियां देखें।

थ्रॉटलिंग

यदि कोई ऐप कम समयावधि में कई बार फ़ेच करता है, तो फ़ेच कॉल थ्रॉटल हो जाते हैं और SDK FirebaseRemoteConfigFetchThrottledException लौटाता है। एसडीके संस्करण 17.0.0 से पहले, सीमा 60 मिनट की खिड़की में 5 लाने के अनुरोध थे (नए संस्करणों में अधिक अनुमोदित सीमाएं हैं)।

ऐप डेवलपमेंट के दौरान, हो सकता है कि आप कॉन्फिग को बार-बार लाना और सक्रिय करना चाहें (प्रति घंटे कई बार) ताकि आप अपने ऐप को विकसित और परीक्षण करते समय तेजी से पुनरावृति कर सकें। 10 डेवलपर्स तक के प्रोजेक्ट पर तेजी से पुनरावृत्ति को समायोजित करने के लिए, आप अस्थायी रूप से अपने ऐप में कम न्यूनतम फ़ेच अंतराल ( setMinimumFetchIntervalInSeconds ) के साथ एक FirebaseRemoteConfigSettings ऑब्जेक्ट सेट कर सकते हैं।

रिमोट कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट न्यूनतम फ़ेच अंतराल 12 घंटे है, जिसका अर्थ है कि कॉन्फ़िगरेशन को बैकएंड से 12 घंटे की विंडो में एक से अधिक बार प्राप्त नहीं किया जाएगा, भले ही कितने फ़ेच कॉल वास्तव में किए गए हों। विशेष रूप से, न्यूनतम फ़ेच अंतराल इस निम्न क्रम में निर्धारित किया जाता है:

  1. fetch(long)
  2. FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) में पैरामीटर
  3. 12 घंटे का डिफ़ॉल्ट मान

न्यूनतम फ़ेच अंतराल को कस्टम मान पर सेट करने के लिए, FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) का उपयोग करें।

अगले कदम

यदि आपने पहले से ऐसा नहीं किया है, तो Remote Config उपयोग के मामलों का अन्वेषण करें, और कुछ प्रमुख अवधारणाओं और उन्नत कार्यनीतियों के दस्तावेज़ीकरण पर एक नज़र डालें, जिनमें शामिल हैं: