पुश सूचनाओं में विषय सदस्यता — यह क्या है, कैसे काम करती है और कैसे कॉन्फ़िगर की जाती है

लेखक: IT Sectr प्रकाशित: 2026-03-21 पढ़ने का समय: 8 मिनट

विषय सदस्यता Firebase Cloud Messaging की एक क्रियाविधि है जो रुचियों के अनुसार उपकरणों को समूहित करने और ग्राहकों की पूरी श्रेणियों को सूचनाएं भेजने की अनुमति देती है। हजारों अलग-अलग Registration Token पर भेजने के बजाय, एक विषय पर एक संदेश भेजना पर्याप्त है। Firebase, 2025 के अनुसार, विषय सदस्यता का उपयोग समाचार ऐप्स, खेल प्रसारण और विपणन अभियानों में बड़े पैमाने पर सूचना वितरण के लिए किया जाता है।

मुख्य बिंदु

  • विषय सदस्यता — समूह सूचनाएं प्राप्त करने के लिए किसी उपकरण का विषयगत FCM चैनल पर सदस्यता।
  • एक उपकरण असीमित संख्या में विषयों की सदस्यता ले सकता है।
  • सदस्यता क्लाइंट और सर्वर दोनों से FCM HTTP API के माध्यम से प्रबंधित की जाती है।
  • पहली सदस्यता पर विषय स्वचालित रूप से बनाया जाता है — किसी पूर्व कॉन्फ़िगरेशन की आवश्यकता नहीं है।
  • किसी विषय पर भेजने के लिए, टोकन की सूची के बजाय उसका नाम निर्दिष्ट करना पर्याप्त है।

FCM में विषय सदस्यता क्या है

विषय सदस्यता एक समूह पुश सूचना वितरण क्रियाविधि है जिसमें उपकरण नामित चैनलों (विषयों) की सदस्यता लेते हैं और उन चैनलों पर भेजे गए संदेश प्राप्त करते हैं। प्रत्येक विषय की पहचान एक स्ट्रिंग नाम से होती है, जैसे news_sports या weather_alerts।

विषयों का कार्य सिद्धांत

जब कोई उपकरण किसी विषय की सदस्यता लेता है, FCM उस विषय के प्राप्तकर्ताओं की सूची में उसका Registration Token जोड़ता है। किसी विषय पर संदेश भेजने पर, FCM स्वचालित रूप से प्रत्येक सदस्यता प्राप्त उपकरण को एक प्रति भेजता है। Firebase प्रति उपकरण सदस्यताओं की संख्या को सीमित नहीं करता — एक ऐप उपयोगकर्ता को एक साथ दर्जनों विषयों की सदस्यता दे सकता है।

विषय बनाम व्यक्तिगत भेजना

विषयों का मुख्य लाभ स्केलेबिलिटी है। दस लाख उपयोगकर्ताओं को सूचना भेजने के लिए, विषय नाम के साथ FCM को केवल एक HTTP अनुरोध की आवश्यकता है। व्यक्तिगत भेजने में दस लाख अनुरोध या एक बार में 500 टोकन तक का बैच भेजना लगेगा। विषय सर्वर-साइड लॉजिक को भी सरल बनाते हैं — प्रत्येक श्रेणी के लिए टोकन सूची संग्रहीत करने की आवश्यकता नहीं है।

पैरामीटरव्यक्तिगत भेजनाविषय सदस्यता
अनुरोधों की संख्याप्रति टोकन एक या 500 तक बैचप्रति विषय एक
सदस्यता प्रबंधनसर्वर पर (टोकन सूची)क्लाइंट या सर्वर पर
गतिशील समूहसूची अद्यतन की आवश्यकतासदस्यता के माध्यम से स्वचालित
प्राप्तकर्ता सीमाप्रति अनुरोध 500 तकअसीमित

विषयों के उपयोग के उदाहरण

विषय सदस्यता का व्यापक रूप से समाचार ऐप्स में सामग्री वर्गीकरण के लिए उपयोग किया जाता है — “खेल”, “राजनीति”, “प्रौद्योगिकी” विषयों की सदस्यता प्रासंगिक सूचनाएं प्रदान करती है। ई-कॉमर्स में, विषयों का उपयोग उत्पादों की विशिष्ट श्रेणियों में छूट के बारे में सूचनाओं के लिए किया जाता है। मैसेंजर और सोशल नेटवर्क में, विषयों का उपयोग समूहों में घटनाओं के बारे में सूचनाओं के लिए किया जाता है।

FCM सीमाएं और कोटा

Firebase विषयों के साथ काम करने पर प्रतिबंध लगाता है। एक ऐप में अधिकतम 2000 विषय हो सकते हैं। प्रत्येक उपकरण अधिकतम 2000 विषयों की सदस्यता ले सकता है। सदस्यता/सदस्यता रद्द करने की आवृत्ति भी सीमित है — प्रति प्रोजेक्ट प्रति मिनट 3000 से अधिक ऑपरेशन नहीं। इन सीमाओं को पार करने पर अस्थायी अवरोधन होता है। बड़ी संख्या में विषयों वाली परियोजनाओं के लिए, विषयों के बजाय शर्तों (condition) का उपयोग करने की अनुशंसा की जाती है — FCM लक्ष्यीकरण के लिए तार्किक अभिव्यक्तियों का समर्थन करता है।

विषय सदस्यता कैसे काम करती है

विषय सदस्यता प्रक्रिया तीन चरणों में होती है: क्लाइंट पर सदस्यता आरंभ करना, FCM बुनियादी ढांचे में पंजीकरण और ऑपरेशन की पुष्टि। सफल सदस्यता के बाद, उपकरण उस विषय पर भेजे गए संदेश प्राप्त करना शुरू कर देता है।

सदस्यता का जीवनचक्र

जब क्लाइंट subscribeToTopic() विधि को कॉल करता है, Firebase SDK FCM सर्वरों को एक अनुरोध भेजता है। सर्वर ऑपरेशन की वैधता की जांच करता है और उपकरण टोकन को विषय के ग्राहकों की सूची में जोड़ता है। FCM क्लाइंट को सफल सदस्यता की पुष्टि लौटाता है। इस क्षण से, इस विषय पर सभी संदेश उपकरण को वितरित किए जाएंगे।

स्वचालित विषय निर्माण

Firebase कंसोल में पहले से विषय बनाने की आवश्यकता नहीं है। जब पहला उपकरण news_promo नामक विषय की सदस्यता लेता है, FCM स्वचालित रूप से इसे बनाता है। यदि अंतिम उपकरण सदस्यता रद्द करता है, तो विषय सिस्टम में बना रहता है लेकिन निष्क्रिय हो जाता है, और नई सदस्यता होने पर फिर से काम करना शुरू कर देता है।

Android पर विषय सदस्यता

Android पर, विषयों की सदस्यता और सदस्यता रद्द करना FirebaseMessaging SDK के माध्यम से किया जाता है। subscribeToTopic() और unsubscribeFromTopic() विधियां पैरामीटर के रूप में विषय का नाम लेती हैं। संचालन अतुल्यकालिक हैं और परिणाम प्रसंस्करण की आवश्यकता है।

बुनियादी विषय सदस्यता

सदस्यता लेने के लिए, लक्ष्य विषय नाम के साथ subscribeToTopic() को कॉल करना पर्याप्त है। Firebase SDK स्वचालित रूप से नेटवर्क अनुरोधों और विफलताओं पर पुनः प्रयास का प्रबंधन करता है। सफलतापूर्वक Registration Token प्राप्त करने के बाद विषयों की सदस्यता लेने की अनुशंसा की जाती है।

kotlin
class TopicSubscriber(private val context: Context) {

    fun subscribeToNewsTopic() {
        FirebaseMessaging.getInstance()
            .subscribeToTopic("news_latest")
            .addOnCompleteListener { task ->
                val msg = if (task.isSuccessful) {
                    "Subscribed to news topic"
                } else {
                    "Subscription failed"
                }
                Log.d("FCM", msg)
            }
    }

    fun unsubscribeFromNewsTopic() {
        FirebaseMessaging.getInstance()
            .unsubscribeFromTopic("news_latest")
            .addOnCompleteListener { task ->
                Log.d("FCM", "सदस्यता रद्द: ${task.isSuccessful}")
            }
    }
}

एकाधिक सदस्यताओं का प्रबंधन

वास्तविक ऐप्स में, उपयोगकर्ता कई श्रेणियों की सदस्यता ले सकता है। सुविधाजनक प्रबंधन के लिए, एक प्रबंधक वर्ग बनाएं जो सर्वर साइड के साथ सदस्यता स्थिति को सिंक्रनाइज़ करता है। जब उपयोगकर्ता लॉग इन करता है, तो उनके प्रोफ़ाइल से उनकी सदस्यताएं पुनर्स्थापित करें।

kotlin
class SubscriptionManager(private val context: Context) {

    private val fcm = FirebaseMessaging.getInstance()

    suspend fun syncSubscriptions(topics: List<String>) {
        topics.forEach { topic ->
            fcm.subscribeToTopic(topic).await()
        }
    }

    suspend fun removeAllSubscriptions() {
        val savedTopics = getSavedTopics()
        savedTopics.forEach { topic ->
            fcm.unsubscribeFromTopic(topic).await()
        }
    }

    private fun getSavedTopics(): List<String> {
        return listOf("news_latest", "promotions", "updates")
    }
}

iOS पर विषय सदस्यता

iOS पर, विषय सदस्यता प्रक्रिया तर्क में Android के समान है लेकिन Swift Firebase Messaging API का उपयोग करती है। subscribe और unsubscribe विधियां Messaging इंस्टेंस पर कॉल की जाती हैं और अतुल्यकालिक भी हैं।

iOS पर सदस्यता का कार्यान्वयन

iOS ऐप में किसी विषय की सदस्यता लेने के लिए, Messaging.subscribe() विधि का उपयोग करें। Firebase आरंभीकरण और Registration Token प्राप्त करने के बाद सदस्यता को कॉल करना महत्वपूर्ण है। Apple विषयों की सदस्यता लेने से पहले सूचना अनुमति का अनुरोध करने की अनुशंसा करता है।

swift
import FirebaseMessaging

class PushTopicManager {

    func subscribeToTopic(topic: String) {
        Messaging.messaging().subscribe(toTopic: topic) { error in
            if let error = error {
                Log.e("FCM", "सदस्यता त्रुटि: \(error)")
            } else {
                Log.d("FCM", "सदस्यता ली \(topic)")
            }
        }
    }

    func unsubscribeFromTopic(topic: String) {
        Messaging.messaging().unsubscribe(fromTopic: topic) { error in
            if let error = error {
                Log.e("FCM", "सदस्यता रद्द करने में त्रुटि: \(error)")
            }
        }
    }
}

iOS सदस्यताओं की विशेषताएं

iOS पर, विषय सदस्यता Registration Token से भी जुड़ी होती है जो Firebase APNs से प्राप्त करता है। यदि APNs टोकन बदलता है (उदाहरण के लिए, उपकरण पुनर्स्थापना के बाद), Firebase स्वचालित रूप से सदस्यताओं को नए टोकन पर स्थानांतरित करता है। हालांकि, दुर्लभ मामलों में, Registration Token अपडेट के बाद पुनः सदस्यता की आवश्यकता हो सकती है।

सर्वर से सदस्यताओं का प्रबंधन

सर्वर-साइड प्रबंधन क्लाइंट ऐप को शामिल किए बिना उपकरणों को सदस्यता देने और सदस्यता रद्द करने की अनुमति देता है। यह प्रशासन, A/B परीक्षण और backend पर सदस्यताओं के प्रबंधन के लिए उपयोगी है।

सदस्यता प्रबंधन के लिए FCM HTTP API

Firebase सामूहिक सदस्यता प्रबंधन के लिए REST API प्रदान करता है। /v1/projects/{project_id}/subscriptions एंडपॉइंट एक अनुरोध में 1000 उपकरणों तक की सदस्यता की अनुमति देता है। API पहचान के लिए उपकरणों के Registration Token का उपयोग करता है।

js
const admin = require("firebase-admin")

async function subscribeUsersToTopic(tokens, topic) {
    try {
        const response = await admin
            .messaging()
            .subscribeToTopic(tokens, topic)
        Log.info(`Success: ${response.successCount}`)
        Log.info(`Failures: ${response.failureCount}`)
    } catch (error) {
        Log.error("सदस्यता त्रुटि", error)
    }
}

सर्वर प्रबंधन के उपयोग के परिदृश्य

सर्वर-साइड सदस्यता प्रबंधन कई परिदृश्यों में उपयोग किया जाता है। जब उपयोगकर्ता पंजीकरण करता है, सर्वर स्वचालित रूप से उसे बुनियादी विषयों की सदस्यता देता है। जब वेब संस्करण में प्राथमिकताएं बदलती हैं, सर्वर मोबाइल उपकरण पर सदस्यताओं को सिंक्रनाइज़ करता है। प्रशासक डिबगिंग के लिए परीक्षण उपकरणों को आंतरिक विषयों की सदस्यता दे सकते हैं। सामूहिक संचालन के लिए, FCM Instance Group विधि प्रदान करता है, जो एकल समूह पहचानकर्ता के माध्यम से उपकरणों के समूह की सदस्यताओं के प्रबंधन की अनुमति देता है।

सदस्यता स्थिति की निगरानी

Firebase किसी उपकरण की वर्तमान सदस्यताओं की जांच के लिए अंतर्निहित API प्रदान नहीं करता है। डेवलपर्स को सर्वर साइड पर अपना स्वयं का सदस्यता डेटाबेस बनाए रखने की सलाह दी जाती है। प्रत्येक ऐप लॉन्च पर, क्लाइंट सक्रिय विषयों की सूची भेजकर सर्वर के साथ अपनी सदस्यताओं को सिंक्रनाइज़ करता है। यह डीसिंक्रनाइज़ेशन की पहचान करने और यदि आवश्यक हो तो सदस्यताओं को पुनर्स्थापित करने में मदद करता है। ऑडिट के लिए, Firebase Cloud Functions लॉग का उपयोग करें — प्रत्येक subscribe/unsubscribe ऑपरेशन लॉग किया जा सकता है।

अक्सर पूछे जाने वाले प्रश्न

एक Firebase प्रोजेक्ट में कितने विषय बनाए जा सकते हैं?

अधिकतम विषय संख्या प्रति ऐप 2000 है। यदि अधिक की आवश्यकता है, तो डिवाइस समूहों या टोकन द्वारा व्यक्तिगत भेजने पर विचार करें।

कैसे पता करें कि उपकरण किन विषयों की सदस्यता लिए हुए है?

Firebase उपकरण की सदस्यता सूची प्राप्त करने के लिए सीधा API प्रदान नहीं करता है। डेवलपर्स को अपने स्वयं के सर्वर पर सदस्यता स्थिति संग्रहीत करने और इसे क्लाइंट के साथ सिंक्रनाइज़ करने की अनुशंसा की जाती है।

गैर-मौजूद विषय से सदस्यता रद्द करने पर क्या होता है?

FCM एक सफल परिणाम लौटाता है। Firebase गैर-मौजूद विषय से सदस्यता रद्द करने को no-op ऑपरेशन के रूप में संभालता है — कोई त्रुटि उत्पन्न नहीं होती, स्थिति नहीं बदलती।

क्या Firebase कंसोल से किसी विषय पर सूचनाएं भेजी जा सकती हैं?

हां, Firebase कंसोल में Cloud Messaging अनुभाग में, आप एक विषय को लक्षित दर्शक के रूप में चुन सकते हैं और वेब इंटरफ़ेस के माध्यम से परीक्षण या उत्पादन सूचना भेज सकते हैं।

विषय सदस्यता कितनी जल्दी सक्रिय होती है?

आमतौर पर, सदस्यता कुछ सेकंड के भीतर सक्रिय हो जाती है। हालांकि, दुर्लभ मामलों में, FCM सर्वरों पर प्रसार के कारण देरी 30–60 सेकंड तक पहुंच सकती है।

सारांश

  • विषय सदस्यता Firebase Cloud Messaging के माध्यम से समूह पुश सूचना वितरण की एक क्रियाविधि है।
  • सदस्यता क्लाइंट से subscribeToTopic() (Android) या subscribe() (iOS) विधियों का उपयोग करके की जाती है।
  • एक उपकरण एक साथ 2000 विषयों तक की सदस्यता ले सकता है।
  • सर्वर API एक अनुरोध में 1000 उपकरणों तक की सदस्यताओं के प्रबंधन की अनुमति देता है।
  • पहली सदस्यता पर विषय स्वचालित रूप से बनाया जाता है और किसी पूर्व कॉन्फ़िगरेशन की आवश्यकता नहीं होती।
  • बड़े दर्शकों के साथ काम करते समय विषय सदस्यता व्यक्तिगत भेजने से बेहतर है।
  • महत्वपूर्ण सूचनाओं के लिए, वितरण सुनिश्चित करने के लिए विषयों को व्यक्तिगत भेजने के साथ जोड़ें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें