FCM এর মাধ্যমে আপনি আপনার ক্লায়েন্ট অ্যাপগুলিতে দুই ধরনের বার্তা পাঠাতে পারেন:
- ‘ডিসপ্লে মেসেজ’-এর মতোই নোটিফিকেশন মেসেজগুলো FCM SDK দ্বারা স্বয়ংক্রিয়ভাবে পরিচালিত হয়।
- ডেটা বার্তা, যা ক্লায়েন্ট অ্যাপ দ্বারা পরিচালিত হয়।
নোটিফিকেশন মেসেজে ব্যবহারকারীর কাছে দৃশ্যমান কিছু পূর্বনির্ধারিত কী থাকে এবং এতে একটি ঐচ্ছিক ডেটা পেলোড থাকতে পারে। অন্যদিকে, ডেটা মেসেজে শুধুমাত্র আপনার ব্যবহারকারী-সংজ্ঞায়িত কাস্টম কী-ভ্যালু পেয়ার থাকে। উভয় প্রকার মেসেজের জন্য সর্বোচ্চ পেলোড হলো ৪০৯৬ বাইট, তবে Firebase কনসোল থেকে মেসেজ পাঠানোর ক্ষেত্রে ১০০০ অক্ষরের একটি সীমা প্রযোজ্য।
| ব্যবহারের পরিস্থিতি | কিভাবে পাঠাতে হবে | |
|---|---|---|
| বিজ্ঞপ্তি বার্তা | যখন ক্লায়েন্ট অ্যাপটি ব্যাকগ্রাউন্ডে চলে, তখন FCM SDK সেটির পক্ষ থেকে ব্যবহারকারীর ডিভাইসে বার্তাটি প্রদর্শন করে। অন্যথায়, নোটিফিকেশনটি পাওয়ার সময় যদি অ্যাপটি ফোরগ্রাউন্ডে চলে, তবে অ্যাপটির কোডই এর আচরণ নির্ধারণ করে। |
|
| ডেটা বার্তা | ক্লায়েন্ট অ্যাপ ডেটা মেসেজ প্রসেস করার জন্য দায়ী। ডেটা মেসেজগুলিতে শুধুমাত্র কাস্টম কী-ভ্যালু পেয়ার থাকে এবং কোনো সংরক্ষিত কী-নেম থাকে না (নিচে দেখুন)। | Cloud Functions বা আপনার অ্যাপ সার্ভারের মতো একটি বিশ্বস্ত পরিবেশে, Firebase Admin SDK অথবা HTTP v1 API ব্যবহার করুন। অনুরোধ পাঠানোর সময়, data key) সেট করুন। |
যখন আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলার সময় আপনি চান যে 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"
}
}
}