Firebase রিমোট কনফিগারেশন দিয়ে শুরু করুন


আপনি আপনার অ্যাপের প্যারামিটারগুলি সংজ্ঞায়িত করতে এবং ক্লাউডে তাদের মানগুলি আপডেট করতে Firebase Remote Config ব্যবহার করতে পারেন, যাতে আপনি কোনও অ্যাপ আপডেট বিতরণ না করেই আপনার অ্যাপের চেহারা এবং আচরণ পরিবর্তন করতে পারেন। এই নির্দেশিকাটি আপনাকে শুরু করার ধাপগুলির মধ্যে দিয়ে চলে এবং কিছু নমুনা কোড প্রদান করে, যার সবকটিই Firebase/quickstart-android GitHub সংগ্রহস্থল থেকে ক্লোন বা ডাউনলোড করার জন্য উপলব্ধ।

ধাপ 1: আপনার অ্যাপে Firebase এবং Remote Config SDK যোগ করুন

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন

  2. Remote Config জন্য, ব্যবহারকারীর বৈশিষ্ট্য এবং শ্রোতাদের জন্য অ্যাপ দৃষ্টান্তগুলির শর্তসাপেক্ষ লক্ষ্য করার জন্য Google Analytics প্রয়োজন৷ নিশ্চিত করুন যে আপনি আপনার প্রকল্পে Google Analytics সক্ষম করুন

  3. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts বা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য Remote Config লাইব্রেরির নির্ভরতা যোগ করুন। আমরা লাইব্রেরি সংস্করণ নিয়ন্ত্রণ করতে Firebase Android BoM ব্যবহার করার পরামর্শ দিই।

    এছাড়াও, Analytics সেট আপ করার অংশ হিসাবে, আপনাকে আপনার অ্যাপে Google Analytics এর জন্য Firebase SDK যোগ করতে হবে।

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.14.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 লাইব্রেরি সংস্করণ তার নির্ভরতা লাইনে উল্লেখ করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন, আমরা দৃঢ়ভাবে লাইব্রেরি সংস্করণগুলি পরিচালনা করতে 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.1.2")
        implementation("com.google.firebase:firebase-analytics:22.4.0")
    }
    একটি কোটলিন-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? অক্টোবর 2023 থেকে শুরু হচ্ছে ( Firebase BoM 32.5.0) , Kotlin এবং Java ডেভেলপাররা প্রধান লাইব্রেরি মডিউলের উপর নির্ভর করতে পারে (বিশদ বিবরণের জন্য, এই উদ্যোগ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন)।

ধাপ 2: Remote Config সিঙ্গেলটন অবজেক্ট পান

একটি Remote Config অবজেক্ট ইনস্ট্যান্স পান এবং ঘন ঘন রিফ্রেশ করার জন্য ন্যূনতম আনয়ন ব্যবধান সেট করুন:

Kotlin

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

সিঙ্গলটন অবজেক্টটি অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মানগুলি সংরক্ষণ করতে, ব্যাকএন্ড থেকে আপডেট করা প্যারামিটার মানগুলি আনতে এবং আপনার অ্যাপে যখন আনা মানগুলি উপলব্ধ করা হয় তখন নিয়ন্ত্রণ করতে ব্যবহৃত হয়।

বিকাশের সময়, এটি একটি অপেক্ষাকৃত কম ন্যূনতম আনার ব্যবধান সেট করার পরামর্শ দেওয়া হয়। আরও তথ্যের জন্য থ্রটলিং দেখুন।

ধাপ 3: অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সেট করুন

আপনি Remote Config অবজেক্টে অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সেট করতে পারেন, যাতে আপনার অ্যাপটি Remote Config ব্যাকএন্ডের সাথে সংযোগ করার আগে উদ্দেশ্য অনুযায়ী আচরণ করে এবং যাতে ব্যাকএন্ডে কোনোটি সেট না থাকলে ডিফল্ট মান উপলব্ধ থাকে।

  1. একটি মানচিত্র বস্তু বা আপনার অ্যাপের res/xml ফোল্ডারে সঞ্চিত একটি XML রিসোর্স ফাইল ব্যবহার করে প্যারামিটার নাম এবং ডিফল্ট প্যারামিটার মানগুলির একটি সেট সংজ্ঞায়িত করুন। Remote Config কুইকস্টার্ট নমুনা অ্যাপটি ডিফল্ট প্যারামিটারের নাম এবং মান নির্ধারণ করতে একটি XML ফাইল ব্যবহার করে।

    আপনি যদি ইতিমধ্যেই Remote Config ব্যাকএন্ড প্যারামিটার মানগুলি কনফিগার করে থাকেন তবে আপনি একটি জেনারেট করা 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
    

    Firebase কনসোল

    1. প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।

    2. অনুরোধ করা হলে, Android এর জন্য .xml সক্ষম করুন, তারপর ফাইল ডাউনলোড করুন ক্লিক করুন।

  2. setDefaultsAsync(int) ব্যবহার করে Remote Config অবজেক্টে এই মানগুলি যোগ করুন, যেমন দেখানো হয়েছে:

    Kotlin

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

ধাপ 4: আপনার অ্যাপে ব্যবহার করার জন্য প্যারামিটার মান পান

এখন আপনি Remote Config অবজেক্ট থেকে প্যারামিটার মান পেতে পারেন। আপনি যদি ব্যাকএন্ডে মান সেট করেন, সেগুলি আনুন এবং তারপরে সেগুলি সক্রিয় করুন, সেই মানগুলি আপনার অ্যাপে উপলব্ধ। অন্যথায়, আপনি setDefaultsAsync(int) ব্যবহার করে কনফিগার করা অ্যাপ-মধ্যস্থ প্যারামিটার মানগুলি পাবেন। এই মানগুলি পেতে, নীচে তালিকাভুক্ত পদ্ধতিতে কল করুন যা আপনার অ্যাপের দ্বারা প্রত্যাশিত ডেটা টাইপের সাথে মানচিত্র করে, একটি যুক্তি হিসাবে প্যারামিটার কী প্রদান করে:

ধাপ 5: Remote Config ব্যাকএন্ডে প্যারামিটার মান সেট করুন

Firebase কনসোল বা Remote Config ব্যাকএন্ড API ব্যবহার করে, আপনি নতুন সার্ভার-সাইড ডিফল্ট মান তৈরি করতে পারেন যা আপনার পছন্দসই শর্তাধীন যুক্তি বা ব্যবহারকারীর টার্গেটিং অনুযায়ী অ্যাপ-মধ্যস্থ মানগুলিকে ওভাররাইড করে৷ এই বিভাগটি এই মানগুলি তৈরি করার জন্য Firebase কনসোলের পদক্ষেপগুলি বর্ণনা করে৷

  1. Firebase কনসোলে , আপনার প্রকল্প খুলুন।
  2. রিমোট Remote Config ড্যাশবোর্ড দেখতে মেনু থেকে Remote Config নির্বাচন করুন।
  3. আপনি আপনার অ্যাপে যে প্যারামিটারগুলি সংজ্ঞায়িত করেছেন তার মতো একই নামের প্যারামিটারগুলিকে সংজ্ঞায়িত করুন৷ প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা শেষ পর্যন্ত সংশ্লিষ্ট ইন-অ্যাপ ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তসাপেক্ষ মানও সেট করতে পারেন। আরও জানতে, Remote Config পরামিতি এবং শর্তাবলী দেখুন।
  4. কাস্টম সিগন্যাল শর্ত ব্যবহার করলে, গুণাবলী এবং তাদের মানগুলি সংজ্ঞায়িত করুন। নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে একটি কাস্টম সংকেত শর্ত সংজ্ঞায়িত করা যায়।

    Kotlin

        val customSignals = customSignals {
            put("city", "Tokyo")
            put("preferred_event_category", "sports")
        }
    
        remoteConfig.setCustomSignals(customSignals)

    Java

        CustomSignals customSignals = new CustomSignals.Builder()
            .put("city", "Tokyo")
            .put("preferred_event_category", "sports")
            .build();
    
        mFirebaseRemoteConfig.setCustomSignals(customSignals);

ধাপ 6: মান আনুন এবং সক্রিয় করুন

  1. Remote Config ব্যাকএন্ড থেকে প্যারামিটার মান আনতে, fetch() পদ্ধতিতে কল করুন। আপনি ব্যাকএন্ডে সেট করেছেন এমন যেকোনো মান Remote Config অবজেক্টে আনা এবং সংরক্ষণ করা হয়।
  2. আপনার অ্যাপে আনা প্যারামিটার মান উপলব্ধ করতে, activate() পদ্ধতিতে কল করুন।

    যে ক্ষেত্রে আপনি একটি কলে মান আনতে এবং সক্রিয় করতে চান, আপনি Remote Config ব্যাকএন্ড থেকে মানগুলি আনতে এবং অ্যাপে সেগুলি উপলব্ধ করতে একটি fetchAndActivate() অনুরোধ ব্যবহার করতে পারেন:

    Kotlin

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

যেহেতু এই আপডেট হওয়া প্যারামিটার মানগুলি আপনার অ্যাপের আচরণ এবং চেহারাকে প্রভাবিত করে, তাই আপনার আনীত মানগুলিকে এমন সময়ে সক্রিয় করা উচিত যা আপনার ব্যবহারকারীর জন্য একটি মসৃণ অভিজ্ঞতা নিশ্চিত করে, যেমন পরের বার যখন ব্যবহারকারী আপনার অ্যাপটি খুলবেন। আরও তথ্য এবং উদাহরণের জন্য দূরবর্তী কনফিগ লোডিং কৌশল দেখুন।

ধাপ 7: রিয়েল টাইমে আপডেটের জন্য শুনুন

আপনি পরামিতি মান আনার পরে, আপনি Remote Config ব্যাকএন্ড থেকে আপডেট শুনতে রিয়েল-টাইম Remote Config ব্যবহার করতে পারেন। রিয়েল-টাইম Remote Config আপডেটগুলি উপলব্ধ থাকলে সংযুক্ত ডিভাইসগুলিতে সংকেত দেয় এবং আপনি একটি নতুন Remote Config সংস্করণ প্রকাশ করার পরে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি আনয়ন করে৷

রিয়েল-টাইম আপডেটগুলি Android v21.3.0+ ( Firebase BoM v31.2.4+) এর জন্য Firebase SDK দ্বারা সমর্থিত।

  1. আপনার অ্যাপে, আপডেট শোনার জন্য addOnConfigUpdateListener() ব্যবহার করুন এবং স্বয়ংক্রিয়ভাবে কোনো নতুন প্যারামিটার মান আনুন। আপডেট করা কনফিগারেশন সক্রিয় করতে onUpdate() কলব্যাক প্রয়োগ করুন।

    Kotlin

    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);
        }
    });
  2. পরের বার যখন আপনি আপনার Remote Config একটি নতুন সংস্করণ প্রকাশ করবেন, তখন যে ডিভাইসগুলি আপনার অ্যাপটি চালাচ্ছে এবং পরিবর্তনগুলি শুনছে সেগুলি ConfigUpdateListener কল করবে৷

থ্রটলিং

যদি একটি অ্যাপ অল্প সময়ের মধ্যে অনেকবার আনয়ন করে, তবে কলগুলি থ্রটল করা হয় এবং SDK FirebaseRemoteConfigFetchThrottledException প্রদান করে। SDK সংস্করণ 17.0.0 এর আগে, 60 মিনিটের উইন্ডোতে 5টি আনার অনুরোধের সীমা ছিল (নতুন সংস্করণগুলির আরও অনুমতিমূলক সীমা রয়েছে)।

অ্যাপ ডেভেলপমেন্টের সময়, আপনি আপনার অ্যাপ ডেভেলপ এবং পরীক্ষা করার সাথে সাথে আপনাকে দ্রুত পুনরাবৃত্তি করতে দিতে খুব ঘন ঘন কনফিগগুলি আনতে এবং সক্রিয় করতে চাইতে পারেন (প্রতি ঘন্টায় অনেক বার)। সার্ভারে কনফিগারেশন আপডেট করা হলে রিয়েল-টাইম Remote Config আপডেট স্বয়ংক্রিয়ভাবে ক্যাশে বাইপাস করে। 10 জন পর্যন্ত বিকাশকারীর সাথে একটি প্রকল্পে দ্রুত পুনরাবৃত্তির ব্যবস্থা করতে, আপনি সাময়িকভাবে একটি FirebaseRemoteConfigSettings অবজেক্ট সেট করতে পারেন যাতে আপনার অ্যাপে একটি কম ন্যূনতম আনয়ন ব্যবধান ( setMinimumFetchIntervalInSeconds ) থাকে।

Remote Config জন্য ডিফল্ট ন্যূনতম আনয়ন ব্যবধান হল 12 ঘন্টা, যার অর্থ হল 12 ঘন্টার উইন্ডোতে ব্যাকএন্ড থেকে কনফিগারেশনগুলি একবারের বেশি আনা হবে না, আসলে কতগুলি আনা কল করা হোক না কেন। বিশেষ করে, ন্যূনতম আনার ব্যবধান এই নিম্নোক্ত ক্রমে নির্ধারিত হয়:

  1. fetch(long)
  2. FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) এ প্যারামিটার
  3. 12 ঘন্টার ডিফল্ট মান

একটি কাস্টম মানতে ন্যূনতম আনার ব্যবধান সেট করতে, FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) ব্যবহার করুন।

পরবর্তী পদক্ষেপ

যদি আপনি ইতিমধ্যে না থাকেন তবে Remote Config ব্যবহারের কেসগুলি অন্বেষণ করুন এবং কিছু মূল ধারণা এবং উন্নত কৌশল ডকুমেন্টেশন সহ একবার দেখুন:

,


আপনি আপনার অ্যাপ্লিকেশনটিতে পরামিতিগুলি সংজ্ঞায়িত করতে এবং ক্লাউডে তাদের মানগুলি আপডেট করতে Firebase Remote Config ব্যবহার করতে পারেন, আপনাকে কোনও অ্যাপ্লিকেশন আপডেট বিতরণ না করে আপনার অ্যাপ্লিকেশনটির উপস্থিতি এবং আচরণ সংশোধন করতে দেয়। এই গাইডটি আপনাকে শুরু করার পদক্ষেপগুলির মধ্যে দিয়ে চলেছে এবং কিছু নমুনা কোড সরবরাহ করে, যার সবগুলি ফায়ারবেস/কুইকস্টার্ট-অ্যান্ড্রয়েড গিটহাব সংগ্রহস্থল থেকে ক্লোন বা ডাউনলোড করার জন্য উপলব্ধ।

পদক্ষেপ 1: আপনার অ্যাপ্লিকেশনটিতে ফায়ারবেস এবং রিমোট কনফিগার এসডিকে যুক্ত করুন

  1. আপনি যদি ইতিমধ্যে না থাকেন তবে আপনার অ্যান্ড্রয়েড প্রকল্পে ফায়ারবেস যুক্ত করুন

  2. Remote Config জন্য, Google Analytics ব্যবহারকারীর বৈশিষ্ট্য এবং শ্রোতাদের কাছে অ্যাপ্লিকেশন দৃষ্টান্তের শর্তসাপেক্ষ লক্ষ্যমাত্রার জন্য প্রয়োজনীয়। আপনি আপনার প্রকল্পে Google Analytics সক্ষম করেছেন তা নিশ্চিত করুন।

  3. আপনার মডিউলটিতে (অ্যাপ্লিকেশন-স্তর) গ্রেডল ফাইল (সাধারণত <project>/<app-module>/build.gradle.kts বা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য Remote Config লাইব্রেরির জন্য নির্ভরতা যুক্ত করুন। আমরা লাইব্রেরি সংস্করণ নিয়ন্ত্রণ করতে Firebase Android BoM ব্যবহার করার পরামর্শ দিই।

    এছাড়াও, Analytics স্থাপনের অংশ হিসাবে, আপনাকে আপনার অ্যাপ্লিকেশনটিতে Google Analytics জন্য ফায়ারবেস এসডিকে যুক্ত করতে হবে।

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.14.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 ব্যবহার করে, আপনার অ্যাপ্লিকেশনটি সর্বদা ফায়ারবেস অ্যান্ড্রয়েড লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

    (বিকল্প) BoM ব্যবহার না করে ফায়ারবেস লাইব্রেরির নির্ভরতা যুক্ত করুন

    আপনি যদি Firebase BoM ব্যবহার না করা বেছে নেন তবে আপনাকে অবশ্যই প্রতিটি ফায়ারবেস লাইব্রেরি সংস্করণকে তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন তবে আমরা লাইব্রেরি সংস্করণগুলি পরিচালনা করতে BoM ব্যবহার করার জন্য দৃ strongly ়ভাবে পরামর্শ দিই, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।

    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.1.2")
        implementation("com.google.firebase:firebase-analytics:22.4.0")
    }
    একটি কোটলিন-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? 2023 সালের অক্টোবরে ( Firebase BoM 32.5.0) থেকে শুরু করে কোটলিন এবং জাভা বিকাশকারী উভয়ই মূল গ্রন্থাগার মডিউলটির উপর নির্ভর করতে পারে (বিশদগুলির জন্য, এই উদ্যোগ সম্পর্কে FAQ দেখুন)।

পদক্ষেপ 2: Remote Config সিঙ্গলটন অবজেক্টটি পান

একটি Remote Config অবজেক্ট উদাহরণ পান এবং ঘন ঘন রিফ্রেশগুলির জন্য অনুমতি দেওয়ার জন্য ন্যূনতম আনার ব্যবধান সেট করুন:

Kotlin

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

সিঙ্গেলটন অবজেক্টটি ইন-অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মানগুলি সংরক্ষণ করতে, ব্যাকএন্ড থেকে আপডেট হওয়া প্যারামিটার মান আনতে এবং যখন আপনার অ্যাপ্লিকেশনটিতে আনার মানগুলি উপলব্ধ করা হয় তখন নিয়ন্ত্রণ করতে ব্যবহৃত হয়।

বিকাশের সময়, এটি একটি অপেক্ষাকৃত কম ন্যূনতম আনার ব্যবধান সেট করার পরামর্শ দেওয়া হয়। আরও তথ্যের জন্য থ্রোটলিং দেখুন।

পদক্ষেপ 3: অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মান সেট করুন

আপনি Remote Config অবজেক্টে অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার মানগুলি সেট করতে পারেন, যাতে আপনার অ্যাপ্লিকেশনটি Remote Config ব্যাকএন্ডের সাথে সংযোগ স্থাপনের আগে উদ্দেশ্য হিসাবে আচরণ করে এবং যাতে কোনও ব্যাকএন্ডে সেট না করা থাকলে ডিফল্ট মানগুলি পাওয়া যায়।

  1. আপনার অ্যাপের res/xml ফোল্ডারে সঞ্চিত কোনও মানচিত্র অবজেক্ট বা একটি এক্সএমএল রিসোর্স ফাইল ব্যবহার করে প্যারামিটারের নাম এবং ডিফল্ট প্যারামিটার মানগুলির একটি সেট সংজ্ঞায়িত করুন। Remote Config কুইকস্টার্ট নমুনা অ্যাপ্লিকেশনটি ডিফল্ট প্যারামিটারের নাম এবং মানগুলি সংজ্ঞায়িত করতে একটি এক্সএমএল ফাইল ব্যবহার করে।

    আপনি যদি ইতিমধ্যে Remote Config ব্যাকেন্ড প্যারামিটার মানগুলি কনফিগার করে থাকেন তবে আপনি একটি উত্পন্ন এক্সএমএল ফাইল ডাউনলোড করতে পারেন যা সমস্ত ডিফল্ট মান অন্তর্ভুক্ত করে এবং এটি আপনার অ্যাপ্লিকেশনটির 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
    

    Firebase কনসোল

    1. প্যারামিটার ট্যাবে, মেনুটি খুলুন এবং ডাউনলোড ডিফল্ট মানগুলি নির্বাচন করুন।

    2. যখন অনুরোধ করা হয়, অ্যান্ড্রয়েডের জন্য .xml সক্ষম করুন, তারপরে ডাউনলোড ফাইলটি ক্লিক করুন।

  2. setDefaultsAsync(int) ব্যবহার করে Remote Config অবজেক্টে এই মানগুলি যুক্ত করুন, যেমন দেখানো হয়েছে:

    Kotlin

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

পদক্ষেপ 4: আপনার অ্যাপ্লিকেশনটিতে ব্যবহারের জন্য প্যারামিটার মানগুলি পান

এখন আপনি Remote Config অবজেক্ট থেকে প্যারামিটার মান পেতে পারেন। আপনি যদি ব্যাকএন্ডে মানগুলি সেট করেন তবে সেগুলি আনুন এবং তারপরে সেগুলি সক্রিয় করুন, সেই মানগুলি আপনার অ্যাপ্লিকেশনটিতে উপলব্ধ। অন্যথায়, আপনি setDefaultsAsync(int) ব্যবহার করে কনফিগার করা ইন-অ্যাপ্লিকেশন প্যারামিটার মানগুলি পান। এই মানগুলি পেতে, আপনার অ্যাপ্লিকেশন দ্বারা প্রত্যাশিত ডেটা টাইপের নীচে তালিকাভুক্ত পদ্ধতিটি কল করুন, একটি যুক্তি হিসাবে প্যারামিটার কী সরবরাহ করে:

পদক্ষেপ 5: Remote Config ব্যাকেন্ডে প্যারামিটার মানগুলি সেট করুন

Firebase কনসোল বা Remote Config ব্যাকেন্ড এপিআই ব্যবহার করে আপনি নতুন সার্ভার-সাইড ডিফল্ট মান তৈরি করতে পারেন যা আপনার পছন্দসই শর্তসাপেক্ষ যুক্তি বা ব্যবহারকারীর লক্ষ্য অনুযায়ী অ্যাপ্লিকেশন মানগুলিকে ওভাররাইড করে। এই বিভাগটি এই মানগুলি তৈরি করতে Firebase কনসোল পদক্ষেপগুলি বর্ণনা করে।

  1. Firebase কনসোলে , আপনার প্রকল্প খুলুন।
  2. রিমোট Remote Config ড্যাশবোর্ড দেখতে মেনু থেকে Remote Config নির্বাচন করুন।
  3. আপনি আপনার অ্যাপ্লিকেশনটিতে সংজ্ঞায়িত প্যারামিটারগুলির মতো একই নামগুলির সাথে পরামিতিগুলি সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা শেষ পর্যন্ত সংশ্লিষ্ট ইন-অ্যাপ্লিকেশন ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তাধীন মানও সেট করতে পারেন। আরও জানতে, Remote Config পরামিতি এবং শর্তাদি দেখুন।
  4. যদি কাস্টম সিগন্যাল শর্তগুলি ব্যবহার করে তবে বৈশিষ্ট্যগুলি এবং তাদের মানগুলি সংজ্ঞায়িত করুন। নিম্নলিখিত উদাহরণগুলি কীভাবে কাস্টম সংকেত শর্তটি সংজ্ঞায়িত করতে হয় তা দেখায়।

    Kotlin

        val customSignals = customSignals {
            put("city", "Tokyo")
            put("preferred_event_category", "sports")
        }
    
        remoteConfig.setCustomSignals(customSignals)

    Java

        CustomSignals customSignals = new CustomSignals.Builder()
            .put("city", "Tokyo")
            .put("preferred_event_category", "sports")
            .build();
    
        mFirebaseRemoteConfig.setCustomSignals(customSignals);

পদক্ষেপ 6: মান আনুন এবং সক্রিয় করুন

  1. Remote Config ব্যাকেন্ড থেকে প্যারামিটার মানগুলি আনতে, fetch() পদ্ধতিটি কল করুন। আপনি ব্যাকএন্ডে সেট করা যে কোনও মানগুলি Remote Config অবজেক্টে আন এবং সংরক্ষণ করা হয়।
  2. আপনার অ্যাপ্লিকেশনটিতে আনতে প্যারামিটার মানগুলি উপলব্ধ করতে, activate() পদ্ধতিতে কল করুন।

    আপনি যেখানে একটি কলটিতে মান আনতে এবং সক্রিয় করতে চান এমন ক্ষেত্রে, আপনি Remote Config ব্যাকএন্ড থেকে মান আনার জন্য একটি fetchAndActivate() অনুরোধ ব্যবহার করতে পারেন এবং অ্যাপ্লিকেশনটিতে তাদের উপলব্ধ করতে পারেন:

    Kotlin

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

যেহেতু এই আপডেট হওয়া প্যারামিটার মানগুলি আপনার অ্যাপ্লিকেশনটির আচরণ এবং উপস্থিতিকে প্রভাবিত করে, আপনার এমন সময়ে আনার মানগুলি সক্রিয় করা উচিত যা আপনার ব্যবহারকারীর জন্য একটি মসৃণ অভিজ্ঞতা নিশ্চিত করে, যেমন পরের বার ব্যবহারকারী আপনার অ্যাপ্লিকেশনটি খোলেন। আরও তথ্য এবং উদাহরণগুলির জন্য রিমোট কনফিগার লোডিং কৌশলগুলি দেখুন।

পদক্ষেপ 7: রিয়েল টাইমে আপডেটের জন্য শুনুন

আপনি প্যারামিটার মানগুলি আনার পরে, আপনি Remote Config ব্যাকেন্ড থেকে আপডেটগুলি শুনতে রিয়েল-টাইম Remote Config ব্যবহার করতে পারেন। রিয়েল-টাইম Remote Config সংকেত সংযুক্ত ডিভাইসে যখন আপডেটগুলি পাওয়া যায় এবং আপনি একটি নতুন Remote Config সংস্করণ প্রকাশের পরে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি আনেন।

রিয়েল-টাইম আপডেটগুলি Android ভি 21.3.0+ ( Firebase BoM 31.2.4+) এর জন্য Firebase এসডিকে দ্বারা সমর্থিত।

  1. আপনার অ্যাপ্লিকেশনটিতে, আপডেটগুলি শোনার জন্য addOnConfigUpdateListener() ব্যবহার করুন এবং স্বয়ংক্রিয়ভাবে কোনও নতুন প্যারামিটার মান আনুন। আপডেট হওয়া কনফিগারেশনটি সক্রিয় করতে onUpdate() কলব্যাকটি প্রয়োগ করুন।

    Kotlin

    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);
        }
    });
  2. পরের বার আপনি যখন আপনার Remote Config একটি নতুন সংস্করণ প্রকাশ করবেন, এমন ডিভাইসগুলি যা আপনার অ্যাপ্লিকেশন চালাচ্ছে এবং পরিবর্তনের জন্য শোনাচ্ছে তারা ConfigUpdateListener কল করবে।

থ্রটলিং

যদি কোনও অ্যাপ্লিকেশন স্বল্প সময়ের মধ্যে অনেকবার আগত হয় তবে আনার কলগুলি থ্রোটল করা হয় এবং এসডিকে FirebaseRemoteConfigFetchThrottledException ফেরত দেয়। এসডিকে সংস্করণ 17.0.0 এর আগে, সীমাটি 60 মিনিটের উইন্ডোতে 5 টি অনুরোধ ছিল (নতুন সংস্করণগুলিতে আরও অনুমতিমূলক সীমা রয়েছে)।

অ্যাপ্লিকেশন বিকাশের সময়, আপনি আপনার অ্যাপ্লিকেশনটি বিকাশ এবং পরীক্ষা করার সাথে সাথে আপনাকে দ্রুত পুনরাবৃত্তি করতে খুব ঘন ঘন (প্রতি ঘন্টা বহুবার) কনফিগারগুলি আনতে এবং সক্রিয় করতে চাইতে পারেন। রিয়েল-টাইম Remote Config যখন কনফিগারেশনটি সার্ভারে আপডেট হয় তখন স্বয়ংক্রিয়ভাবে ক্যাশে বাইপাস করে। 10 জন বিকাশকারী সহ একটি প্রকল্পে দ্রুত পুনরাবৃত্তির জন্য, আপনি আপনার অ্যাপ্লিকেশনটিতে কম ন্যূনতম ফেচ ইন্টারভাল ( setMinimumFetchIntervalInSeconds ) সহ অস্থায়ীভাবে একটি FirebaseRemoteConfigSettings অবজেক্ট সেট করতে পারেন।

Remote Config জন্য ডিফল্ট ন্যূনতম ফেচ ব্যবধানটি 12 ঘন্টা, যার অর্থ 12 ঘন্টা উইন্ডোতে কনফিগারগুলি ব্যাকএন্ড থেকে একাধিকবার আনা হবে না, নির্বিশেষে কতগুলি ফেচ কলগুলি আসলে তৈরি করা হয়। বিশেষত, ন্যূনতম আনার অন্তরটি এই নিম্নলিখিত ক্রমে নির্ধারিত হয়:

  1. fetch(long)
  2. FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. 12 ঘন্টা ডিফল্ট মান

কাস্টম মানটিতে সর্বনিম্ন আনার ব্যবধানটি সেট করতে, FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) ব্যবহার করুন।

পরবর্তী পদক্ষেপ

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: