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