| প্ল্যাটফর্ম বেছে নিন: | iOS+ Android ওয়েব Flutter Unity C++ |
আপনি Firebase Remote Config ব্যবহার করে আপনার অ্যাপে প্যারামিটার নির্ধারণ করতে এবং ক্লাউডে সেগুলির ভ্যালু আপডেট করতে পারবেন, যার ফলে অ্যাপ আপডেট ডিস্ট্রিবিউট না করেই আপনার অ্যাপের চেহারা ও আচরণ পরিবর্তন করতে পারবেন। এই নির্দেশিকা আপনাকে শুরু করার ধাপগুলি দেখায় এবং কিছু স্যাম্পেল কোড প্রদান করে, যার সবকটিই firebase/quickstart-js GitHub রিপোজিটরি থেকে ক্লোন বা ডাউনলোড করার জন্য উপলভ্য।
ধাপ ১: Remote Config SDK যোগ ও ইনিশিয়ালাইজ করুন
আপনি আগে না করে থাকলে, Firebase JS SDK ইনস্টল করুন এবং Firebase শুরু করুন।
Remote Config JS SDK যোগ করুন এবং Remote Config শুরু করুন:
Web
import { initializeApp } from "firebase/app"; import { getRemoteConfig } from "firebase/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = firebase.remoteConfig();
এই অবজেক্টটি ইন-অ্যাপ ডিফল্ট প্যারামিটারের মান স্টোর করতে, Remote Config ব্যাকএন্ড থেকে আপডেট করা প্যারামিটারের মান ফেচ করতে এবং ফেচ করা মান কখন আপনার অ্যাপে উপলভ্য করা হবে তা নিয়ন্ত্রণ করতে ব্যবহার করা হয়।
ধাপ ২: ডেটা আনার ন্যূনতম ব্যবধান সেট করুন
ডেভেলপমেন্টের সময়, তুলনামূলকভাবে কম ন্যূনতম ফেচ ইন্টারভাল সেট করার সাজেস্ট করা হয়। আরও তথ্যের জন্য থ্রটলিং দেখুন।
Web
// The default and recommended production fetch interval for Remote Config is 12 hours remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
ধাপ ৩: অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটারের মান সেট করুন
আপনি Remote Config অবজেক্টে ইন-অ্যাপ ডিফল্ট প্যারামিটার ভ্যালু সেট করতে পারেন, যাতে আপনার অ্যাপ Remote Config ব্যাকএন্ডের সাথে কানেক্ট করার আগে প্রত্যাশিতভাবে কাজ করে এবং ব্যাকএন্ডে কোনও ভ্যালু সেট করা না থাকলে ডিফল্ট ভ্যালু উপলভ্য থাকে।
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
আপনি যদি আগে থেকেই Remote Config ব্যাকএন্ড প্যারামিটার ভ্যালু কনফিগার করে থাকেন, তাহলে আপনি একটি জেনারেট করা JSON ফাইল ডাউনলোড করতে পারবেন যাতে সব ডিফল্ট ভ্যালু অন্তর্ভুক্ত থাকে এবং এটি আপনার অ্যাপ বান্ডেলে অন্তর্ভুক্ত করতে পারবেন:
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json
Google Cloud CLI বা Cloud Shell ব্যবহার করে নিম্নলিখিত কমান্ড রান করার মাধ্যমে আপনি বিয়ারার টোকেন জেনারেট করতে পারবেন:
gcloud auth print-access-token
এই টোকেনটি স্বল্পস্থায়ী, তাই আপনি যাচাইকরণ সংক্রান্ত কোনও সমস্যা পেলে এটি আবার তৈরি করতে হতে পারে।
Firebase কনসোল
Firebase কনসোলে, DevOps ও এনগেজমেন্ট > রিমোট কনফিগ > প্যারামিটার পৃষ্ঠায় যান।
মেনু খুলুন এবং ডিফল্ট ভ্যালু ডাউনলোড করুন বিকল্প বেছে নিন।প্রম্পট করা হলে, ওয়েবের জন্য .json চালু করুন, তারপর ফাইল ডাউনলোড করুন বিকল্পে ক্লিক করুন।
নিম্নলিখিত উদাহরণগুলি আপনার অ্যাপে ডিফল্ট মান ইমপোর্ট ও সেট করার দুটি ভিন্ন উপায় দেখায়। প্রথম উদাহরণটি fetch ব্যবহার করে, যা আপনার অ্যাপ বান্ডেলে অন্তর্ভুক্ত ডিফল্ট ফাইলের জন্য একটি HTTP অনুরোধ করবে:
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
পরবর্তী উদাহরণে require ব্যবহার করা হয়েছে, যা বিল্ড করার সময় আপনার অ্যাপে ভ্যালু কম্পাইল করে:
let rcDefaults = require('./remote_config_defaults.json');
remoteConfig.defaultConfig = rcDefaults;ধাপ ৪: আপনার অ্যাপে ব্যবহার করার জন্য প্যারামিটারের মান পান
এখন আপনি Remote Config অবজেক্ট থেকে প্যারামিটারের মান পেতে পারেন। আপনি পরে
ব্যাকএন্ডে মান সেট করলে, সেগুলি নিয়ে এসে অ্যাক্টিভেট করলে, সেই মানগুলি
আপনার অ্যাপে উপলভ্য হয়। এই মানগুলি পেতে, প্যারামিটার কী আর্গুমেন্ট হিসেবে প্রদান করে
getValue() পদ্ধতি কল করুন।
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
ধাপ ৫: প্যারামিটারের ভ্যালু সেট করা
Firebase কনসোল বা Remote Config ব্যাকএন্ড এপিআই ব্যবহার করে, আপনি নতুন সার্ভার-সাইড ডিফল্ট ভ্যালু তৈরি করতে পারেন যা আপনার পছন্দসই শর্তসাপেক্ষ লজিক বা ব্যবহারকারী টার্গেটিং অনুযায়ী অ্যাপ-মধ্যস্থ ভ্যালুকে ওভাররাইড করে। এই বিভাগে Firebase কনসোলের ধাপগুলি দেখানো হয়েছে যার মাধ্যমে এইসব ভ্যালু তৈরি করা যায়।
Firebase কনসোলে, DevOps ও এনগেজমেন্ট > রিমোট কনফিগ > প্যারামিটার পৃষ্ঠায় যান।
আপনার অ্যাপে যে প্যারামিটারগুলি সংজ্ঞায়িত করেছেন সেগুলির মতো একই নামের প্যারামিটারগুলি সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা শেষ পর্যন্ত অ্যাপ-মধ্যস্থ ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তসাপেক্ষ মানও সেট করতে পারেন। আরও জানতে, Remote Config প্যারামিটার ও শর্তাবলী দেখুন।
কাস্টম সিগন্যাল শর্তাবলী ব্যবহার করলে, অ্যাট্রিবিউট ও সেগুলির ভ্যালু নির্ধারণ করুন। কাস্টম সিগন্যাল কন্ডিশন কীভাবে সংজ্ঞায়িত করতে হয় তা নিচের উদাহরণে দেখানো হয়েছে।
let customSignals = { "city": "Tokyo", "preferred_event_category": "sports" } setCustomSignals(config, customSignals);
ধাপ ৬: মান নিয়ে এসে সেগুলি অ্যাক্টিভেট করা
- Remote Config ব্যাকএন্ড থেকে প্যারামিটারের ভ্যালু ফেচ করতে,
fetchConfig()মেথড কল করুন। ব্যাকএন্ডে আপনার সেট করা যেকোনও ভ্যালু ফেচ করা হয় এবং Remote Config অবজেক্টে ক্যাশে করা হয়। - আপনার অ্যাপে ফেচ করা প্যারামিটারের মান উপলভ্য করতে,
activate()পদ্ধতি কল করুন।
আপনি যদি একটি কলের মাধ্যমে মান নিয়ে এসে সেগুলি অ্যাক্টিভেট করতে চান, তাহলে এই উদাহরণে দেখানো
fetchAndActivate()
ব্যবহার করুন:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
এইসব আপডেট করা প্যারামিটারের মান আপনার অ্যাপের আচরণ ও চেহারাকে প্রভাবিত করে বলে, আপনাকে এমন সময়ে ফেচ করা মান অ্যাক্টিভেট করতে হবে যাতে আপনার ব্যবহারকারী মসৃণ অভিজ্ঞতা পান, যেমন, ব্যবহারকারী পরের বার আপনার অ্যাপ খুললে। আরও তথ্য ও উদাহরণের জন্য Remote Config লোড করার স্ট্র্যাটেজি দেখুন।
ধাপ ৭: রিয়েল টাইমে আপডেট শুনুন
প্যারামিটারের মান ফেচ করার পরে, আপনি রিয়েল-টাইম Remote Config ব্যবহার করে Remote Config ব্যাকএন্ড থেকে আপডেট শুনতে পারবেন। আপডেট উপলভ্য হলে কানেক্ট করা ডিভাইসে রিয়েল-টাইম Remote Config সিগন্যাল পাঠানো হয় এবং আপনি নতুন Remote Config ভার্সন প্রকাশ করার পরে অটোমেটিক পরিবর্তনগুলি ফেচ করা হয়।
আপনার অ্যাপে, আপডেট শোনার জন্য
onConfigUpdateব্যবহার করুন এবং অটোমেটিক যেকোনও নতুন প্যারামিটারের মান ফেচ করুন। আপডেট করা কনফিগারেশন অ্যাক্টিভেট করতেnextকলব্যাক প্রয়োগ করুন।onConfigUpdate(remoteConfig, { next: (configUpdate) => { console.log("Updated keys:", configUpdate.getUpdatedKeys()); if (configUpdate.getUpdatedKeys().has("welcome_message")) { activate(remoteConfig).then(() => { showWelcomeMessage(); }); } }, error: (error) => { console.log("Config update error:", error); }, complete: () => { console.log("Listening stopped."); } });
পরের বার আপনি Remote Config-এর নতুন ভার্সন প্রকাশ করলে, যেসব ডিভাইসে আপনার অ্যাপ চলছে এবং পরিবর্তনের জন্য অপেক্ষা করছে, সেগুলি কমপ্লিশন হ্যান্ডলারকে কল করবে।
থ্রটলিং
কোনও অ্যাপ যদি অল্প সময়ের মধ্যে অনেকবার ফেচ করে, তাহলে ফেচ কল
থ্রটল করা হতে পারে। এইসব ক্ষেত্রে, SDK FETCH_THROTTLE সমস্যা দেখায়। এই সমস্যাটি
সমাধান করার জন্য আমরা আপনাকে এক্সপোনেনশিয়াল ব্যাকঅফ মোডে আবার চেষ্টা করার সাজেশন দিচ্ছি, পরবর্তী ফেচ অনুরোধের মধ্যে আরও বেশি সময় অপেক্ষা করুন।
অ্যাপ ডেভেলপ করার সময়, আপনি হয়ত খুব ঘন ঘন ক্যাশে রিফ্রেশ করতে চাইবেন
(প্রতি ঘণ্টায় অনেকবার) যাতে আপনি অ্যাপ ডেভেলপ ও টেস্ট করার সময় দ্রুত ইটারেট করতে পারেন।
অনেক ডেভেলপার কাজ করছেন এমন কোনও প্রোজেক্টে দ্রুত ইটারেশন করার জন্য, আপনি
আপনার অ্যাপে সাময়িকভাবে কম ন্যূনতম ফেচ ইন্টারভ্যাল (Settings.minimumFetchIntervalMillis) সহ
একটি প্রপার্টি যোগ করতে পারেন।
Remote Config-এর জন্য ডিফল্ট এবং সাজেস্ট করা প্রোডাকশন ফেচ ইন্টারভাল হল ১২ ঘণ্টা, যার অর্থ হল ১২ ঘণ্টার উইন্ডোতে ব্যাকএন্ড থেকে কনফিগারেশন একবারের বেশি ফেচ করা হবে না, আসলে কতগুলি ফেচ কল করা হয়েছে তা নির্বিশেষে। বিশেষ করে, ন্যূনতম ফেচ ইন্টারভাল নিম্নলিখিত ক্রমে নির্ধারণ করা হয়:
Settings.minimumFetchIntervalMillis-এ প্যারামিটার।- ডিফল্ট ভ্যালু হল ১২ ঘণ্টা।