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


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

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

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ফ্লটারের জন্য Firebase SDK ইনস্টল করুন এবং শুরু করুন

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

  3. আপনার ফ্লাটার প্রকল্পের রুট ডিরেক্টরি থেকে, রিমোট কনফিগ প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_remote_config
    

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

    flutter pub add firebase_analytics
    
  4. আপনার প্রকল্প পুনর্নির্মাণ:

    flutter run
    
  5. আপনি যদি macOS-এ রিমোট কনফিগ ব্যবহার করেন, তাহলে Xcode-এ কীচেন শেয়ারিং সক্ষম করুন।

ধাপ 2: রিমোট কনফিগার সিঙ্গেলটন অবজেক্ট পান

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

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

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

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

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

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

await remoteConfig.setDefaults(const {
    "example_param_1": 42,
    "example_param_2": 3.14159,
    "example_param_3": true,
    "example_param_4": "Hello, world!",
});

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

এখন আপনি দূরবর্তী কনফিগার অবজেক্ট থেকে প্যারামিটার মান পেতে পারেন। আপনি যদি ব্যাকএন্ডে মান সেট করেন, সেগুলি আনুন এবং তারপরে সেগুলি সক্রিয় করুন, সেই মানগুলি আপনার অ্যাপে উপলব্ধ। অন্যথায়, আপনি setDefaults() ব্যবহার করে কনফিগার করা অ্যাপ-মধ্যস্থ প্যারামিটার মানগুলি পাবেন।

এই মানগুলি পেতে, নীচে তালিকাভুক্ত পদ্ধতিতে কল করুন যা আপনার অ্যাপের দ্বারা প্রত্যাশিত ডেটা টাইপের সাথে মানচিত্র করে, একটি যুক্তি হিসাবে প্যারামিটার কী প্রদান করে:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

ধাপ 5: দূরবর্তী কনফিগার ব্যাকএন্ডে প্যারামিটার মান সেট করুন

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

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

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

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

  2. আপনার অ্যাপে আনা প্যারামিটার মান উপলব্ধ করতে, activate() পদ্ধতিতে কল করুন।

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

    await remoteConfig.fetchAndActivate();
    

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

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

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

মনে রাখবেন যে রিয়েল-টাইম রিমোট কনফিগ ওয়েবের জন্য উপলব্ধ নয়।

  1. আপনার অ্যাপে, আপডেটের জন্য শোনা শুরু করতে এবং স্বয়ংক্রিয়ভাবে যেকোনো নতুন প্যারামিটার মান আনতে onConfigUpdated ব্যবহার করুন।

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. পরের বার যখন আপনি আপনার রিমোট কনফিগারেশনের একটি নতুন সংস্করণ প্রকাশ করবেন, যে ডিভাইসগুলি আপনার অ্যাপটি চালাচ্ছে এবং পরিবর্তনগুলি শুনছে সেগুলি নতুন কনফিগারেশন সক্রিয় করবে৷

থ্রটলিং

যদি একটি অ্যাপ অল্প সময়ের মধ্যে অনেকবার আনয়ন করে, তাহলে কলগুলিকে থ্রটল করা হবে এবং FirebaseRemoteConfig এর lastFetchStatus প্রপার্টির মান হবে RemoteConfigFetchStatus.throttle

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

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

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

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

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