আপনি সার্ভার বা ক্লায়েন্ট উভয় থেকেই একটি বিষয়ে একটি ক্লায়েন্ট অ্যাপ সাবস্ক্রাইব করতে পারেন:
সার্ভারে, Firebase Admin SDK ব্যবহার করে।
ক্লায়েন্টে, আপনার অ্যাপের মধ্যে ক্লায়েন্ট-সাইড API ব্যবহার করে।
অ্যাডমিন SDK ব্যবহার করে বিষয় সাবস্ক্রিপশন পরিচালনা করুন
Firebase Admin SDK আপনাকে সার্ভারের দিক থেকে মৌলিক বিষয় ব্যবস্থাপনার কাজগুলি সম্পাদন করতে দেয়। তাদের নিবন্ধন টোকেন(গুলি) দেওয়া হলে, আপনি সার্ভার লজিক ব্যবহার করে ক্লায়েন্ট অ্যাপ ইনস্ট্যান্সগুলিকে বাল্কে সাবস্ক্রাইব এবং আনসাবস্ক্রাইব করতে পারেন।
আপনি যেকোনো বিদ্যমান বিষয়ে ক্লায়েন্ট অ্যাপের উদাহরণ সাবস্ক্রাইব করতে পারেন, অথবা আপনি একটি নতুন বিষয় তৈরি করতে পারেন। যখন আপনি API ব্যবহার করে একটি নতুন বিষয়ে ক্লায়েন্ট অ্যাপ সাবস্ক্রাইব করেন (যেটি আপনার Firebase প্রকল্পের জন্য ইতিমধ্যে বিদ্যমান নেই), তখন FCM-এ সেই নামের একটি নতুন বিষয় তৈরি হয় এবং যেকোনো ক্লায়েন্ট পরবর্তীতে এতে সাবস্ক্রাইব করতে পারে।
আপনি Firebase Admin SDK সাবস্ক্রিপশন পদ্ধতিতে নিবন্ধন টোকেনের একটি তালিকা পাঠাতে পারেন যাতে সংশ্লিষ্ট ডিভাইসগুলিকে একটি বিষয়ে সাবস্ক্রাইব করা যায়:
নোড.জেএস
// These registration tokens come from the client FCM SDKs.
const registrationTokens = [
'YOUR_REGISTRATION_TOKEN_1',
// ...
'YOUR_REGISTRATION_TOKEN_n'
];
// Subscribe the devices corresponding to the registration tokens to the
// topic.
getMessaging().subscribeToTopic(registrationTokens, topic)
.then((response) => {
// See the MessagingTopicManagementResponse reference documentation
// for the contents of response.
console.log('Successfully subscribed to topic:', response);
})
.catch((error) => {
console.log('Error subscribing to topic:', error);
});
জাভা
// These registration tokens come from the client FCM SDKs.
List<String> registrationTokens = Arrays.asList(
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n"
);
// Subscribe the devices corresponding to the registration tokens to the
// topic.
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic(
registrationTokens, topic);
// See the TopicManagementResponse reference documentation
// for the contents of response.
System.out.println(response.getSuccessCount() + " tokens were subscribed successfully");
পাইথন
# These registration tokens come from the client FCM SDKs.
registration_tokens = [
'YOUR_REGISTRATION_TOKEN_1',
# ...
'YOUR_REGISTRATION_TOKEN_n',
]
# Subscribe the devices corresponding to the registration tokens to the
# topic.
response = messaging.subscribe_to_topic(registration_tokens, topic)
# See the TopicManagementResponse reference documentation
# for the contents of response.
print(response.success_count, 'tokens were subscribed successfully')
যাও
// These registration tokens come from the client FCM SDKs.
registrationTokens := []string{
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n",
}
// Subscribe the devices corresponding to the registration tokens to the
// topic.
response, err := client.SubscribeToTopic(ctx, registrationTokens, topic)
if err != nil {
log.Fatalln(err)
}
// See the TopicManagementResponse reference documentation
// for the contents of response.
fmt.Println(response.SuccessCount, "tokens were subscribed successfully")
সি#
// These registration tokens come from the client FCM SDKs.
var registrationTokens = new List<string>()
{
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n",
};
// Subscribe the devices corresponding to the registration tokens to the
// topic
var response = await FirebaseMessaging.DefaultInstance.SubscribeToTopicAsync(
registrationTokens, topic);
// See the TopicManagementResponse reference documentation
// for the contents of response.
Console.WriteLine($"{response.SuccessCount} tokens were subscribed successfully");
Firebase Admin SDK আপনাকে উপযুক্ত পদ্ধতিতে নিবন্ধন টোকেন পাস করে একটি বিষয় থেকে ডিভাইসগুলি আনসাবস্ক্রাইব করতে দেয়:
নোড.জেএস
// These registration tokens come from the client FCM SDKs.
const registrationTokens = [
'YOUR_REGISTRATION_TOKEN_1',
// ...
'YOUR_REGISTRATION_TOKEN_n'
];
// Unsubscribe the devices corresponding to the registration tokens from
// the topic.
getMessaging().unsubscribeFromTopic(registrationTokens, topic)
.then((response) => {
// See the MessagingTopicManagementResponse reference documentation
// for the contents of response.
console.log('Successfully unsubscribed from topic:', response);
})
.catch((error) => {
console.log('Error unsubscribing from topic:', error);
});
জাভা
// These registration tokens come from the client FCM SDKs.
List<String> registrationTokens = Arrays.asList(
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n"
);
// Unsubscribe the devices corresponding to the registration tokens from
// the topic.
TopicManagementResponse response = FirebaseMessaging.getInstance().unsubscribeFromTopic(
registrationTokens, topic);
// See the TopicManagementResponse reference documentation
// for the contents of response.
System.out.println(response.getSuccessCount() + " tokens were unsubscribed successfully");
পাইথন
# These registration tokens come from the client FCM SDKs.
registration_tokens = [
'YOUR_REGISTRATION_TOKEN_1',
# ...
'YOUR_REGISTRATION_TOKEN_n',
]
# Unubscribe the devices corresponding to the registration tokens from the
# topic.
response = messaging.unsubscribe_from_topic(registration_tokens, topic)
# See the TopicManagementResponse reference documentation
# for the contents of response.
print(response.success_count, 'tokens were unsubscribed successfully')
যাও
// These registration tokens come from the client FCM SDKs.
registrationTokens := []string{
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n",
}
// Unsubscribe the devices corresponding to the registration tokens from
// the topic.
response, err := client.UnsubscribeFromTopic(ctx, registrationTokens, topic)
if err != nil {
log.Fatalln(err)
}
// See the TopicManagementResponse reference documentation
// for the contents of response.
fmt.Println(response.SuccessCount, "tokens were unsubscribed successfully")
সি#
// These registration tokens come from the client FCM SDKs.
var registrationTokens = new List<string>()
{
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n",
};
// Unsubscribe the devices corresponding to the registration tokens from the
// topic
var response = await FirebaseMessaging.DefaultInstance.UnsubscribeFromTopicAsync(
registrationTokens, topic);
// See the TopicManagementResponse reference documentation
// for the contents of response.
Console.WriteLine($"{response.SuccessCount} tokens were unsubscribed successfully");
subscribeToTopic()
এবং unsubscribeFromTopic()
পদ্ধতির ফলে FCM থেকে প্রাপ্ত প্রতিক্রিয়া সম্বলিত একটি বস্তু তৈরি হয়। অনুরোধে উল্লেখিত নিবন্ধন টোকেনের সংখ্যা নির্বিশেষে রিটার্ন টাইপের ফর্ম্যাট একই থাকে।
কোনও ত্রুটির ক্ষেত্রে (প্রমাণীকরণ ব্যর্থতা, অবৈধ টোকেন বা বিষয় ইত্যাদি) এই পদ্ধতিগুলির ফলে একটি ত্রুটি দেখা দেয়। বিবরণ এবং সমাধানের পদক্ষেপ সহ ত্রুটি কোডগুলির সম্পূর্ণ তালিকার জন্য, Firebase Admin SDK ত্রুটি দেখুন।
আপনার ক্লায়েন্ট অ্যাপ থেকে বিষয় সাবস্ক্রিপশন পরিচালনা করুন
ক্লায়েন্ট অ্যাপের ইনস্ট্যান্সগুলি Firebase SDK-এর মাধ্যমে সরাসরি আপনার অ্যাপ থেকে বিষয়গুলিতে সাবস্ক্রাইব বা আনসাবস্ক্রাইব করা যেতে পারে। মনে রাখবেন যে সাবস্ক্রিপশন সফল হয়েছে তা নিশ্চিত করার জন্য প্রাথমিক ব্যর্থতার ক্ষেত্রে FCM পুনরায় চেষ্টা করে।
আপনার প্ল্যাটফর্মটি বেছে নিন:
অ্যান্ড্রয়েড
ক্লায়েন্ট অ্যাপগুলি যেকোনো বিদ্যমান বিষয়ে সাবস্ক্রাইব করতে পারে, অথবা তারা একটি নতুন বিষয় তৈরি করতে পারে। যখন একটি ক্লায়েন্ট অ্যাপ একটি নতুন বিষয়ের নামে সাবস্ক্রাইব করে (যা আপনার Firebase প্রকল্পের জন্য ইতিমধ্যে বিদ্যমান নেই), তখন FCM এ সেই নামের একটি নতুন বিষয় তৈরি করা হয় এবং যেকোনো ক্লায়েন্ট পরবর্তীতে এটিতে সাবস্ক্রাইব করতে পারে।
কোনও টপিকে সাবস্ক্রাইব করার জন্য, ক্লায়েন্ট অ্যাপটি Firebase Cloud Messaging subscribeToTopic()
FCM টপিক নাম দিয়ে কল করে। এই পদ্ধতিটি একটি Task
প্রদান করে, যা একজন সমাপ্তি শ্রোতা দ্বারা সাবস্ক্রিপশন সফল হয়েছে কিনা তা নির্ধারণ করতে ব্যবহার করা যেতে পারে:
Kotlin
Firebase.messaging.subscribeToTopic("weather") .addOnCompleteListener { task -> var msg = "Subscribed" if (!task.isSuccessful) { msg = "Subscribe failed" } Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() }
Java
FirebaseMessaging.getInstance().subscribeToTopic("weather") .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { String msg = "Subscribed"; if (!task.isSuccessful()) { msg = "Subscribe failed"; } Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
আনসাবস্ক্রাইব করার জন্য, ক্লায়েন্ট অ্যাপটি টপিকের নাম দিয়ে Firebase Cloud Messaging unsubscribeFromTopic()
কল করে।
আইওএস
ক্লায়েন্ট অ্যাপগুলি যেকোনো বিদ্যমান বিষয়ে সাবস্ক্রাইব করতে পারে, অথবা তারা একটি নতুন বিষয় তৈরি করতে পারে। যখন একটি ক্লায়েন্ট অ্যাপ একটি নতুন বিষয়ের নামে সাবস্ক্রাইব করে (যা আপনার Firebase প্রকল্পের জন্য ইতিমধ্যে বিদ্যমান নেই), তখন FCM এ সেই নামের একটি নতুন বিষয় তৈরি করা হয় এবং যেকোনো ক্লায়েন্ট পরবর্তীতে এটিতে সাবস্ক্রাইব করতে পারে।
কোনও বিষয়ে সাবস্ক্রাইব করতে, আপনার অ্যাপ্লিকেশনের মূল থ্রেড থেকে সাবস্ক্রিপশন পদ্ধতিতে কল করুন ( FCM থ্রেড-নিরাপদ নয়)। যদি সাবস্ক্রিপশন অনুরোধ প্রাথমিকভাবে ব্যর্থ হয়, তাহলে FCM স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করে। যেসব ক্ষেত্রে সাবস্ক্রিপশন সম্পন্ন করা সম্ভব হয় না, সেখানে সাবস্ক্রিপশন একটি ত্রুটি ফেলে যা আপনি একটি সমাপ্তি হ্যান্ডলারে দেখতে পাবেন যেমন দেখানো হয়েছে:
সুইফট
Messaging.messaging().subscribe(toTopic: "weather") { error in print("Subscribed to weather topic") }
অবজেক্টিভ-সি
[[FIRMessaging messaging] subscribeToTopic:@"weather" completion:^(NSError * _Nullable error) { NSLog(@"Subscribed to weather topic"); }];
এই কলটি FCM ব্যাকএন্ডে একটি অ্যাসিঙ্ক্রোনাস অনুরোধ করে এবং ক্লায়েন্টকে প্রদত্ত বিষয়ে সাবস্ক্রাইব করে। subscribeToTopic:topic
কল করার আগে, নিশ্চিত করুন যে ক্লায়েন্ট অ্যাপ ইনস্ট্যান্সটি ইতিমধ্যেই কলব্যাক didReceiveRegistrationToken
এর মাধ্যমে একটি নিবন্ধন টোকেন পেয়েছে।
প্রতিবার অ্যাপটি শুরু করার সময়, FCM নিশ্চিত করে যে সমস্ত অনুরোধ করা বিষয় সাবস্ক্রাইব করা হয়েছে। আনসাবস্ক্রাইব করতে, unsubscribeFromTopic:topic
এ কল করুন, এবং FCM ব্যাকগ্রাউন্ডে টপিক থেকে আনসাবস্ক্রাইব করে।
সি++
কোনও বিষয়ে সাবস্ক্রাইব করতে, আপনার অ্যাপ্লিকেশন থেকে ::firebase::messaging::Subscribe
কল করুন। এটি FCM ব্যাকএন্ডে একটি অ্যাসিঙ্ক্রোনাস অনুরোধ করে এবং ক্লায়েন্টকে প্রদত্ত বিষয়ে সাবস্ক্রাইব করে।
::firebase::messaging::Subscribe("example");
যদি সাবস্ক্রিপশন অনুরোধ প্রাথমিকভাবে ব্যর্থ হয়, তাহলে FCM বিষয়টিতে সফলভাবে সাবস্ক্রাইব না হওয়া পর্যন্ত পুনরায় চেষ্টা করে। প্রতিবার অ্যাপটি শুরু করার সময়, FCM নিশ্চিত করে যে সমস্ত অনুরোধ করা বিষয় সাবস্ক্রাইব করা হয়েছে।
আনসাবস্ক্রাইব করতে, ::firebase::messaging::Unsubscribe
কল করুন, এবং FCM ব্যাকগ্রাউন্ডে থাকা টপিক থেকে আনসাবস্ক্রাইব করবে।
ঐক্য
কোনও বিষয়ে সাবস্ক্রাইব করতে, আপনার অ্যাপ্লিকেশন থেকে Firebase.Messaging.FirebaseMessaging.Subscribe
কল করুন। এটি FCM ব্যাকএন্ডে একটি অ্যাসিঙ্ক্রোনাস অনুরোধ করে এবং ক্লায়েন্টকে প্রদত্ত বিষয়ে সাবস্ক্রাইব করে।
Firebase.Messaging.FirebaseMessaging.Subscribe("/topics/example");
যদি সাবস্ক্রিপশন অনুরোধ প্রাথমিকভাবে ব্যর্থ হয়, তাহলে FCM বিষয়টিতে সফলভাবে সাবস্ক্রাইব না হওয়া পর্যন্ত পুনরায় চেষ্টা করে। প্রতিবার অ্যাপটি শুরু করার সময়, FCM নিশ্চিত করে যে সমস্ত অনুরোধ করা বিষয় সাবস্ক্রাইব করা হয়েছে।
আনসাবস্ক্রাইব করতে, Firebase.Messaging.FirebaseMessaging.Unsubscribe
এ কল করুন, এবং FCM পটভূমিতে থাকা বিষয় থেকে আনসাবস্ক্রাইব করবে।
লিগ্যাসি সার্ভার-সাইড টপিক ম্যানেজমেন্ট (অবঞ্চিত)
ইনস্ট্যান্স আইডি কী তা বুঝতে, ইনস্ট্যান্স আইডি পৃষ্ঠাটি দেখুন। অবচিত এন্ডপয়েন্টগুলির বিশদ বিবরণের জন্য, ইনস্ট্যান্স আইডি API রেফারেন্সগুলি দেখুন।