বিষয় সদস্যতা পরিচালনা করুন

আপনি সার্ভার বা ক্লায়েন্ট থেকে একটি বিষয়ে একটি ক্লায়েন্ট অ্যাপ সাবস্ক্রাইব করতে পারেন:

  • সার্ভারে, Firebase Admin SDK ব্যবহার করে।

  • ক্লায়েন্টে, আপনার অ্যাপের মধ্যে ক্লায়েন্ট-সাইড API ব্যবহার করে।

অ্যাডমিন SDK ব্যবহার করে বিষয় সদস্যতা পরিচালনা করুন

Firebase Admin SDK আপনাকে সার্ভারের দিক থেকে প্রাথমিক বিষয় পরিচালনার কাজগুলি সম্পাদন করতে দেয়৷ তাদের রেজিস্ট্রেশন টোকেন(গুলি) দেওয়া, আপনি সার্ভার লজিক ব্যবহার করে বাল্ক ক্লায়েন্ট অ্যাপ ইন্সট্যান্স সাবস্ক্রাইব এবং আনসাবস্ক্রাইব করতে পারেন।

আপনি যেকোন বিদ্যমান বিষয়ের ক্লায়েন্ট অ্যাপ ইনস্ট্যান্স সাবস্ক্রাইব করতে পারেন, অথবা আপনি একটি নতুন বিষয় তৈরি করতে পারেন। আপনি যখন একটি নতুন বিষয়ে একটি ক্লায়েন্ট অ্যাপ সাবস্ক্রাইব করার জন্য API ব্যবহার করেন (যেটি আপনার ফায়ারবেস প্রকল্পের জন্য ইতিমধ্যেই বিদ্যমান নেই), তখন সেই নামের একটি নতুন বিষয় FCM-এ তৈরি হয় এবং যেকোনো ক্লায়েন্ট পরবর্তীতে এটিতে সদস্যতা নিতে পারে।

আপনি একটি বিষয়ের সাথে সংশ্লিষ্ট ডিভাইসগুলি সাবস্ক্রাইব করতে Firebase Admin SDK সদস্যতা পদ্ধতিতে নিবন্ধন টোকেনগুলির একটি তালিকা পাঠাতে পারেন:

Node.js

// 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 আপনাকে উপযুক্ত পদ্ধতিতে নিবন্ধন টোকেন পাস করে একটি বিষয় থেকে ডিভাইসগুলি আনসাবস্ক্রাইব করতে দেয়:

Node.js

// 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 পুনরায় চেষ্টা করে।

আপনার প্ল্যাটফর্ম চয়ন করুন:

অ্যান্ড্রয়েড

ক্লায়েন্ট অ্যাপগুলি বিদ্যমান যেকোনো বিষয়ের সদস্যতা নিতে পারে, অথবা তারা একটি নতুন বিষয় তৈরি করতে পারে। যখন একটি ক্লায়েন্ট অ্যাপ একটি নতুন বিষয়ের নাম (যেটি আপনার ফায়ারবেস প্রকল্পের জন্য ইতিমধ্যে বিদ্যমান নেই) সাবস্ক্রাইব করে, তখন সেই নামের একটি নতুন বিষয় FCM এ তৈরি হয় এবং যেকোনো ক্লায়েন্ট পরবর্তীতে এটিতে সদস্যতা নিতে পারে।

একটি বিষয়ের সদস্যতা নিতে, ক্লায়েন্ট অ্যাপটি FCM বিষয়ের নামের সাথে Firebase Cloud Messaging subscribeToTopic() কল করে। এই পদ্ধতিটি একটি 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() টপিকের নামের সাথে কল করে।

iOS

ক্লায়েন্ট অ্যাপগুলি বিদ্যমান যেকোনো বিষয়ের সদস্যতা নিতে পারে, অথবা তারা একটি নতুন বিষয় তৈরি করতে পারে। যখন একটি ক্লায়েন্ট অ্যাপ একটি নতুন বিষয়ের নাম (যেটি আপনার ফায়ারবেস প্রকল্পের জন্য ইতিমধ্যে বিদ্যমান নেই) সাবস্ক্রাইব করে, তখন সেই নামের একটি নতুন বিষয় FCM এ তৈরি হয় এবং যেকোনো ক্লায়েন্ট পরবর্তীতে এটিতে সদস্যতা নিতে পারে।

একটি বিষয়ের সদস্যতা নিতে, আপনার অ্যাপ্লিকেশনের প্রধান থ্রেড থেকে সদস্যতা পদ্ধতিতে কল করুন ( FCM থ্রেড-নিরাপদ নয়)। সদস্যতা অনুরোধ প্রাথমিকভাবে ব্যর্থ হলে, FCM স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করে। যে ক্ষেত্রে সাবস্ক্রিপশন সম্পূর্ণ করা যায় না, সাবস্ক্রিপশন একটি ত্রুটি ছুঁড়ে দেয় যা আপনি দেখানো হিসাবে একটি সম্পূর্ণ হ্যান্ডলারে ধরতে পারেন:

সুইফট

Messaging.messaging().subscribe(toTopic: "weather") { error in
  print("Subscribed to weather topic")
}

উদ্দেশ্য-C

[[FIRMessaging messaging] subscribeToTopic:@"weather"
                                completion:^(NSError * _Nullable error) {
  NSLog(@"Subscribed to weather topic");
}];

এই কলটি FCM ব্যাকএন্ডে একটি অ্যাসিঙ্ক্রোনাস অনুরোধ করে এবং প্রদত্ত বিষয়ে ক্লায়েন্টকে সাবস্ক্রাইব করে। subscribeToTopic:topic কল করার আগে নিশ্চিত করুন যে ক্লায়েন্ট অ্যাপ ইন্সট্যান্স ইতিমধ্যেই callback 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 রেফারেন্স দেখুন।