আপনি 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 ফাইল ডাউনলোড করতে পারেন যাতে সমস্ত ডিফল্ট মান অন্তর্ভুক্ত থাকে এবং এটি আপনার অ্যাপ বান্ডেলে অন্তর্ভুক্ত করতে পারেন:
বিশ্রাম
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
আপনি গুগল ক্লাউড সিএলআই অথবা ক্লাউড শেল ব্যবহার করে নিম্নলিখিত কমান্ডটি চালিয়ে একটি বিয়ারার টোকেন তৈরি করতে পারেন:
gcloud auth print-access-token
এই টোকেনটি স্বল্পস্থায়ী, তাই যদি আপনি একটি প্রমাণীকরণ ত্রুটি পান তবে আপনাকে এটি পুনরায় তৈরি করতে হতে পারে।
Firebase কনসোল
- প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
- অনুরোধ করা হলে, ওয়েবের জন্য .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 ব্যাকএন্ড API ব্যবহার করে, আপনি নতুন সার্ভার-সাইড ডিফল্ট মান তৈরি করতে পারেন যা আপনার পছন্দসই শর্তসাপেক্ষ লজিক বা ব্যবহারকারীর টার্গেটিং অনুসারে ইন-অ্যাপ মানগুলিকে ওভাররাইড করে। এই বিভাগটি আপনাকে Firebase কনসোল ধাপগুলি তৈরি করার মাধ্যমে নিয়ে যাবে।
- Firebase কনসোলে , আপনার প্রকল্পটি খুলুন।
- Remote Config ড্যাশবোর্ড দেখতে মেনু থেকে Remote Config নির্বাচন করুন।
- আপনার অ্যাপে সংজ্ঞায়িত প্যারামিটারের নামের সাথে একই নামের প্যারামিটারগুলি সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা অবশেষে অ্যাপ-মধ্যস্থ ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তাধীন মানগুলিও সেট করতে পারেন। আরও জানতে, 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 সংস্করণ প্রকাশ করার পরে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি আনে।
আপনার অ্যাপে, আপডেট শোনা শুরু করতে
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
এর প্যারামিটার। - ডিফল্ট মান ১২ ঘন্টা।
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: