Flutter'da konu mesajları

Yayınlama/abone olma modeline dayanan FCM konu mesajlaşması, belirli bir konuyu etkinleştirmiş birden çok cihaza mesaj göndermenize olanak tanır. Konu iletilerini gerektiği gibi oluşturursunuz ve FCM, iletinin doğru cihazlara güvenilir bir şekilde yönlendirilmesini ve teslim edilmesini sağlar.

Örneğin, yerel bir gelgit tahmin uygulaması kullanıcıları "gelgit akıntıları uyarıları" konusunu etkinleştirerek belirli bölgelerde tuzlu su balıkçılığı için en uygun koşullarla ilgili bildirimler alabilir. Bir spor uygulaması kullanıcıları, tuttukları takımların canlı maç skorlarıyla ilgili otomatik güncellemelere abone olabilir.

Konularla ilgili olarak göz önünde bulundurulması gereken bazı noktalar:

  • Konu mesajlaşması, hava durumu gibi içerikler veya herkese açık diğer bilgiler için en uygun yöntemdir.

  • Konu mesajları gecikme yerine işleme hızı için optimize edilir. Tek cihazlara veya küçük cihaz gruplarına hızlı ve güvenli teslimat için mesajları konulara değil, kayıt jetonlarına hedefleyin.

  • Kullanıcı başına birden fazla cihaza mesaj göndermeniz gerekiyorsa bu kullanım alanları için cihaz grubu mesajlaşmasını kullanabilirsiniz.

  • Konu mesajlaşma, her konu için sınırsız aboneliği destekler. Ancak FCM, şu alanlarda sınırları zorunlu kılar:

    • Bir uygulama örneği en fazla 2.000 konuya abone olabilir.
    • Uygulama örneklerine abone olmak için toplu içe aktarma özelliğini kullanıyorsanız her istek 1.000 uygulama örneğiyle sınırlıdır.
    • Yeni aboneliklerin sıklığı proje başına hız sınırlamasına tabidir. Kısa süre içinde çok fazla abonelik isteği gönderirseniz FCM sunucuları 429 RESOURCE_EXHAUSTED ("kota aşıldı") yanıtı verir. Eksponansiyel geri yüklemeyle yeniden deneyin.

İstemci uygulamasını bir konuya abone etme

İstemci uygulamaları, mevcut herhangi bir konuya abone olabilir veya yeni bir konu oluşturabilir. Bir istemci uygulaması yeni bir konu adına (Firebase projenizde henüz mevcut olmayan bir ad) abone olduğunda FCM'de bu ada sahip yeni bir konu oluşturulur ve daha sonra herhangi bir istemci bu konuya abone olabilir.

Bir konuya abone olmak için konu adıyla subscribeToTopic() işlevini çağırın. Bu yöntem, abonelik başarılı olduğunda çözümlenen bir Future döndürür:

await FirebaseMessaging.instance.subscribeToTopic("topic");

Listeden çıkmak için konu adıyla birlikte unsubscribeFromTopic() numarasını arayın.

subscribeToTopic() ve unsubscribeFromTopic(), web istemcilerinde desteklenmez. Web kullanıcılarının aboneliklerini nasıl yöneteceğinizi öğrenmek için Web/JavaScript'teki konulara mesaj gönderme başlıklı makaleyi inceleyin.

Sonraki adımlar