| প্ল্যাটফর্ম বেছে নিন: | iOS+ Android ওয়েব Flutter Unity C++ |
আপনি Firebase রিমোট কনফিগ ব্যবহার করে আপনার অ্যাপে প্যারামিটার নির্ধারণ করতে এবং ক্লাউডে সেগুলির ভ্যালু আপডেট করতে পারেন, যার ফলে আপনি অ্যাপ আপডেট ডিস্ট্রিবিউট না করেই আপনার অ্যাপের চেহারা এবং আচরণ পরিবর্তন করতে পারবেন। এই নির্দেশিকা আপনাকে শুরু করার ধাপগুলি দেখায় এবং কিছু স্যাম্পেল কোড প্রদান করে।
ধাপ ১: আপনার অ্যাপে Firebase ও 'রিমোট কনফিগ' SDK যোগ করুন
আপনি যদি আগে থেকে এটি না করে থাকেন, তাহলে Flutter-এর জন্য Firebase SDK ইনস্টল ও ইনিশিয়ালাইজ করুন।
রিমোট কনফিগের জন্য, ব্যবহারকারীর প্রপার্টি ও দর্শকদের কাছে অ্যাপ ইনস্ট্যান্সের শর্তসাপেক্ষ টার্গেটিং করতে Google Analytics প্রয়োজন। আপনার প্রোজেক্টে Google Analytics চালু করেছেন কিনা তা ভাল করে দেখে নিন।
আপনার Flutter প্রোজেক্টের রুট ডিরেক্টরি থেকে, রিমোট কনফিগ প্লাগ-ইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি রান করুন:
flutter pub add firebase_remote_configএছাড়াও, 'রিমোট কনফিগ' সেট-আপ করার অংশ হিসেবে, আপনার অ্যাপে Google Analytics-এর জন্য Firebase SDK যোগ করতে হবে:
flutter pub add firebase_analyticsআপনার প্রোজেক্ট আবার তৈরি করুন:
flutter runআপনি macOS-এ রিমোট কনফিগ ব্যবহার করলে, Xcode-এ Keychain শেয়ারিং চালু করুন।
ধাপ ২: 'রিমোট কনফিগ' সিঙ্গেলটন অবজেক্ট পান
'রিমোট কনফিগ' অবজেক্ট ইনস্ট্যান্স পান এবং ঘন ঘন রিফ্রেশ করার অনুমতি দিতে ডেটা আনার ন্যূনতম ব্যবধান সেট করুন:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
সিঙ্গেলটন অবজেক্টটি ইন-অ্যাপ ডিফল্ট প্যারামিটারের মান স্টোর করতে, ব্যাকএন্ড থেকে আপডেট করা প্যারামিটারের মান ফেচ করতে এবং ফেচ করা মান কখন আপনার অ্যাপে উপলভ্য করা হবে তা নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
ডেভেলপমেন্টের সময়, তুলনামূলকভাবে কম ন্যূনতম ফেচ ইন্টারভাল সেট করার সাজেস্ট করা হয়। আরও তথ্যের জন্য থ্রটলিং দেখুন।
ধাপ ৩: অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটারের মান সেট করুন
আপনি 'রিমোট কনফিগ' অবজেক্টে ইন-অ্যাপ ডিফল্ট প্যারামিটারের মান সেট করতে পারেন, যাতে আপনার অ্যাপ 'রিমোট কনফিগ' ব্যাকএন্ডের সাথে কানেক্ট করার আগে প্রত্যাশিতভাবে কাজ করে এবং ব্যাকএন্ডে কোনও মান সেট করা না থাকলে ডিফল্ট মান উপলভ্য থাকে।
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
ধাপ ৪: আপনার অ্যাপে ব্যবহার করার জন্য প্যারামিটারের মান পান
এখন আপনি 'রিমোট কনফিগ' অবজেক্ট থেকে প্যারামিটারের মান পেতে পারেন। আপনি যদি
ব্যাকএন্ডে মান সেট করেন, সেগুলি নিয়ে আসেন এবং তারপর অ্যাক্টিভেট করেন,
তাহলে সেইসব মান আপনার অ্যাপে উপলভ্য হয়। অন্যথায়, আপনি setDefaults() ব্যবহার করে কনফিগার করা ইন-অ্যাপ
প্যারামিটারের মান পান।
এইসব ভ্যালু পেতে, আপনার অ্যাপের প্রত্যাশিত ডেটা টাইপে ম্যাপ করে এমন নিম্নলিখিত যেকোনও পদ্ধতি কল করুন, প্যারামিটার কী আর্গুমেন্ট হিসেবে প্রদান করুন:
getBool()getDouble()getInt()getString()
ধাপ ৫: 'রিমোট কনফিগ' ব্যাকএন্ডে প্যারামিটারের মান সেট করা
Firebase কনসোল বা রিমোট কনফিগ ব্যাকএন্ড API ব্যবহার করে, আপনি নতুন সার্ভার-সাইড ডিফল্ট ভ্যালু তৈরি করতে পারেন যা আপনার পছন্দসই শর্তসাপেক্ষ লজিক বা ব্যবহারকারী টার্গেটিং অনুযায়ী ইন-অ্যাপ ভ্যালু ওভাররাইড করে। এই বিভাগটি এইসব ভ্যালু তৈরি করার জন্য Firebase কনসোলের ধাপগুলি বর্ণনা করে।
Firebase কনসোলে, DevOps ও এনগেজমেন্ট > রিমোট কনফিগ বিকল্পে যান।
আপনার অ্যাপে আপনি যে প্যারামিটারগুলি সংজ্ঞায়িত করেছেন তার মতো একই নামের প্যারামিটারগুলি সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা শেষ পর্যন্ত সংশ্লিষ্ট অ্যাপ-মধ্যস্থ ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তসাপেক্ষ মানও সেট করতে পারেন। আরও জানতে, রিমোট কনফিগ প্যারামিটার ও শর্তাবলী দেখুন।
ধাপ ৬: মান নিয়ে এসে সেগুলি অ্যাক্টিভেট করা
'রিমোট কনফিগ' ব্যাকএন্ড থেকে প্যারামিটারের মান ফেচ করতে,
fetch()পদ্ধতি কল করুন। ব্যাকএন্ডে আপনার সেট করা যেকোনও মান ফেচ করা হয় এবং 'রিমোট কনফিগ' অবজেক্টে স্টোর করা হয়।আপনার অ্যাপে ফেচ করা প্যারামিটারের মান উপলভ্য করতে,
activate()মেথড কল করুন।আপনি যদি একটি কলের মাধ্যমে মান নিয়ে এসে অ্যাক্টিভেট করতে চান, তাহলে
fetchAndActivate()অনুরোধ ব্যবহার করে 'রিমোট কনফিগ' ব্যাকএন্ড থেকে মান নিয়ে এসে অ্যাপে উপলভ্য করতে পারেন:await remoteConfig.fetchAndActivate();
এইসব আপডেট করা প্যারামিটারের মান আপনার অ্যাপের আচরণ ও চেহারাকে প্রভাবিত করে বলে, আপনাকে এমন সময়ে ফেচ করা মান অ্যাক্টিভেট করতে হবে যাতে আপনার ব্যবহারকারী কোনও সমস্যা ছাড়াই অ্যাপ ব্যবহার করতে পারেন, যেমন, ব্যবহারকারী পরের বার আপনার অ্যাপ খুললে। আরও তথ্য ও উদাহরণের জন্য Remote Config লোড করার স্ট্র্যাটেজি দেখুন।
ধাপ ৭: রিয়েল টাইমে আপডেট শুনুন
প্যারামিটারের মান ফেচ করার পরে, আপনি রিয়েল-টাইম রিমোট কনফিগ ব্যবহার করে রিমোট কনফিগ ব্যাকএন্ড থেকে আপডেট শুনতে পারবেন। আপডেট উপলভ্য হলে রিয়েল-টাইম রিমোট কনফিগ কানেক্ট করা ডিভাইসে সিগন্যাল পাঠায় এবং আপনি নতুন রিমোট কনফিগ ভার্সন প্রকাশ করার পরে অটোমেটিক পরিবর্তনগুলি নিয়ে আসে।
মনে রাখবেন, রিয়েল-টাইম রিমোট কনফিগ ওয়েবের জন্য উপলভ্য নয়।
আপনার অ্যাপে, আপডেট শোনার জন্য
onConfigUpdatedব্যবহার করুন এবং অটোমেটিক যেকোনও নতুন প্যারামিটারের মান ফেচ করুন।remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });পরের বার আপনি যখন রিমোট কনফিগের নতুন ভার্সন প্রকাশ করবেন, তখন যেসব ডিভাইসে আপনার অ্যাপ চলছে এবং পরিবর্তনের জন্য অপেক্ষা করছে, সেগুলি নতুন কনফিগ অ্যাক্টিভেট করবে।
থ্রটলিং
কোনও অ্যাপ যদি অল্প সময়ের মধ্যে অনেকবার ফেচ করে, তাহলে ফেচ কল থ্রটল করা হবে এবং FirebaseRemoteConfig-এর lastFetchStatus
প্রপার্টির ভ্যালু RemoteConfigFetchStatus.throttle হবে।
রিমোট কনফিগের জন্য ডিফল্ট ন্যূনতম ফেচ ইন্টারভাল হল ১২ ঘণ্টা, যার অর্থ হল ১২ ঘণ্টার উইন্ডোতে ব্যাকএন্ড থেকে কনফিগ একাধিকবার ফেচ করা হবে না, আসলে কতগুলি ফেচ কল করা হয়েছে তা নির্বিশেষে।
অ্যাপ ডেভেলপ করার সময়, আপনি যদি রিয়েল-টাইম রিমোট কনফিগ (যা আমরা
সাজেস্ট করি) ব্যবহার না করেন, তাহলে আপনি খুব ঘন ঘন (প্রতি ঘণ্টায় অনেকবার) কনফিগ ফেচ ও অ্যাক্টিভেট করতে
চাইবেন যাতে আপনার অ্যাপ ডেভেলপ ও টেস্ট করার সময় দ্রুত ইটারেট করতে পারেন। ১০ জন পর্যন্ত ডেভেলপার নিয়ে
কোনও প্রোজেক্টে দ্রুত ইটারেশন করার জন্য, আপনি সাময়িকভাবে setConfigSettings()-এর মাধ্যমে কম ন্যূনতম ফেচ ইন্টারভাল সেট করতে পারেন।
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));