FCM-এর সাহায্যে, আপনার ক্লায়েন্ট অ্যাপে দুই ধরনের মেসেজ পাঠাতে পারবেন:
- "ডিসপ্লে মেসেজ"-এর মতো বিজ্ঞপ্তি মেসেজ FCM SDK অটোমেটিক ম্যানেজ করে।
- ডেটা মেসেজ, যা ক্লায়েন্ট অ্যাপ ম্যানেজ করে।
বিজ্ঞপ্তি মেসেজে ব্যবহারকারীর কাছে দৃশ্যমান কীগুলির একটি পূর্বনির্ধারিত সেট থাকে এবং এতে ঐচ্ছিক ডেটা পেলোড থাকতে পারে। অন্যদিকে, ডেটা মেসেজে শুধুমাত্র আপনার ব্যবহারকারী-সংজ্ঞায়িত কাস্টম কী-ভ্যালু পেয়ার থাকে। দুটি মেসেজ ধরনের ক্ষেত্রেই সর্বাধিক পেলোড হল ৪০৯৬ বাইট, তবে Firebase কনসোল থেকে মেসেজ পাঠানোর সময় ১০০০ অক্ষরের সীমা প্রয়োগ করা হয়।
| সম্ভাব্য পরিস্থিতি ব্যবহার করা | কীভাবে পাঠাতে হয় | |
|---|---|---|
| বিজ্ঞপ্তি মেসেজ | FCM ক্লায়েন্ট অ্যাপ ব্যাকগ্রাউন্ডে রান করার সময় SDK ব্যবহারকারীর ডিভাইসে সেটির হয়ে মেসেজ দেখায়। অন্যথায়, বিজ্ঞপ্তি পাওয়ার সময় অ্যাপটি ফোরগ্রাউন্ডে চালু থাকলে, অ্যাপের কোড আচরণ নির্ধারণ করে। |
|
| ডেটা মেসেজ | ডেটা মেসেজ প্রসেস করার দায়িত্ব ক্লায়েন্ট অ্যাপের। ডেটা মেসেজে রিজার্ভ করা কী-এর নাম নেই, শুধুমাত্র কাস্টম কী-ভ্যালু পেয়ার আছে (নিচে দেখুন)। |
Cloud Functions
বা আপনার অ্যাপ সার্ভারের মতো বিশ্বস্ত এনভায়রনমেন্টে, Firebase Admin SDK বা
HTTP v1 API ব্যবহার করুন।
অনুরোধ পাঠানোর সময়, data
কী সেট করুন।
|
আপনি বিজ্ঞপ্তি মেসেজ ব্যবহার করতে পারেন যখন আপনি চান যে FCM SDK অটোমেটিক বিজ্ঞপ্তি দেখানোর কাজটি ম্যানেজ করুক, যখন আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলছে। FCM ঐচ্ছিক ডেটা পেলোড সহ বিজ্ঞপ্তি মেসেজ পাঠাতে পারে। এইসব ক্ষেত্রে, FCM বিজ্ঞপ্তি পেলোড দেখায় এবং ক্লায়েন্ট অ্যাপ ডেটা পেলোড ম্যানেজ করে।
আপনি নিজের ক্লায়েন্ট অ্যাপ কোড দিয়ে মেসেজ প্রসেস করতে চাইলে, ডেটা মেসেজ ব্যবহার করতে পারেন।
বিজ্ঞপ্তি মেসেজ
আপনি Firebase কনসোল, Firebase Admin SDK অথবা FCM HTTP v1 API ব্যবহার করে বিজ্ঞপ্তি মেসেজ পাঠাতে পারবেন। আপনার বিজ্ঞপ্তি মেসেজকে আরও উন্নত ও রিফাইন করতে সাহায্য করার জন্য Firebase কনসোল অ্যানালিটিক্স-ভিত্তিক A/B টেস্টিং প্রদান করে।
Firebase Admin SDK বা FCM
HTTP v1 API ব্যবহার করে বিজ্ঞপ্তি মেসেজ পাঠাতে, বিজ্ঞপ্তি মেসেজের আগে থেকে সংজ্ঞায়িত কী-ভ্যালু
বিকল্পের সাথে notification কী সেট করুন। আপনি IM অ্যাপে বিজ্ঞপ্তি মেসেজ ফর্ম্যাট করতে
নিম্নলিখিত উদাহরণ ব্যবহার করতে পারেন
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
অ্যাপ ব্যাকগ্রাউন্ডে থাকলে বিজ্ঞপ্তি মেসেজ বিজ্ঞপ্তি ট্রেতে ডেলিভার করা হয়। ফোরগ্রাউন্ডে থাকা অ্যাপের জন্য, মেসেজগুলি একটি কলব্যাক ফাংশন দ্বারা ম্যানেজ করা হয়।
বিজ্ঞপ্তি মেসেজ তৈরি করার জন্য উপলভ্য আগে থেকে নির্দিষ্ট করা কী-এর সম্পূর্ণ তালিকা পেতে, আপনি FCM HTTP v1 API বিজ্ঞপ্তি অবজেক্ট রেফারেন্স ডকুমেন্টেশন ব্যবহার করতে পারেন।
ডেটা মেসেজ
আপনার পছন্দের এনক্রিপশন স্কিম প্রয়োগ করার জন্য আপনি কীভাবে FCM পেলোড data ব্যবহার করতে চান তা
আপনার উপর নির্ভর করে। দেখে নেবেন যে আপনার কাস্টম কী-ভ্যালু পেয়ারে
কোনও রিজার্ভ করা শব্দ ব্যবহার না করেন। রিজার্ভ করা শব্দের মধ্যে from, message_type বা
google., gcm. বা gcm.notification. দিয়ে শুরু হওয়া যেকোনও শব্দ পড়ে।
নিচের উদাহরণে টপ-লেভেল বা সাধারণ ডেটা ফিল্ডের ব্যবহার দেখানো হয়েছে, যা মেসেজ পাওয়া সব প্ল্যাটফর্মের ক্লায়েন্টরা ইন্টারপ্রেট করে। প্রতিটি প্ল্যাটফর্মে, ক্লায়েন্ট অ্যাপ কলব্যাক ফাংশনে ডেটা পেলোড পায়
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
ঐচ্ছিক ডেটা পেলোড সহ বিজ্ঞপ্তি মেসেজ
আপনি প্রোগ্র্যামাটিক উপায়ে বা Firebase কনসোল ব্যবহার করে কাস্টম কী-ভ্যালু পেয়ারের ঐচ্ছিক পেলোড সহ বিজ্ঞপ্তি মেসেজ পাঠাতে পারেন। বিজ্ঞপ্তি কম্পোজার-এ, উন্নত বিকল্প-এ কাস্টম ডেটা ফিল্ড ব্যবহার করুন।
বিজ্ঞপ্তি ও ডেটা, দুটিই আছে এমন মেসেজ পেলে অ্যাপের আচরণ পেলোড নির্ভর করে অ্যাপটি ব্যাকগ্রাউন্ডে আছে নাকি ফোরগ্রাউন্ডে—মূলত, মেসেজ পাওয়ার সময় সেটি অ্যাক্টিভ আছে কিনা তার উপর।
- ব্যাকগ্রাউন্ডে থাকলে, অ্যাপ বিজ্ঞপ্তি ট্রেতে বিজ্ঞপ্তি পেলোড পায় এবং ব্যবহারকারী বিজ্ঞপ্তিতে ট্যাপ করলে তবেই ডেটা পেলোড হ্যান্ডেল করে।
- ফোরগ্রাউন্ডে থাকাকালীন, আপনার অ্যাপ উপলভ্য দুটি পেলোড সহ একটি মেসেজ অবজেক্ট পায়।
এখানে JSON-ফর্ম্যাট করা মেসেজ দেওয়া হল, যার মধ্যে
notification কী ও data কী, দুটিই রয়েছে:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}