Basit yayın mesajları almak için her istemci uygulamasının firebase::messaging::Listener
API'sindeki yöntemleri uygulaması gerekir.
FCM başlatılıyor
Kayıt jetonunuza erişmek veya mesaj almak için FCM'ü kullanabilmeniz gerekir.
FCM öğesini ilk kullanıma hazırlamak için ::firebase::messaging::Initialize
yöntemini çağırıp ::firebase::App
nesnenizle birlikte ::firebase::messaging::Listener
sınıfının uygulamasını sağlayın.
MyListener my_listener_implementation; ::firebase::messaging::Initialize(app, &my_listener_implementation);
Kayıt jetonuna erişme
Uygulamanız ilk kez başlatıldığında FCM SDK'sı, istemci uygulama örneği için bir kayıt jetonu oluşturur. Tek cihazları hedeflemek veya FCM için cihaz grupları oluşturmak istiyorsanız bu jetona erişmeniz gerekir.
::firebase::messaging::Listener::OnTokenReceived
sanal işlevi aracılığıyla jetonun değerine erişebilirsiniz.
void OnTokenReceived(const char* token) { LogMessage("The registration token is `%s`", token); // TODO: If necessary send token to application server. }
Mesajları alma ve işleme
Dinleyici sınıfınızın, mesaj almak için OnMessage
sanal işlevini uygulaması gerekir.
OnMessage
öğesini geçersiz kılma
::firebase::messaging::Listener::OnMessage
yöntemini geçersiz kılarak, gelen mesaja göre işlem yapabilir ve mesaj verilerini alabilirsiniz:
void OnMessage(const ::firebase::messaging::Message& message) { LogMessage(TAG, "From: %s", message.from.c_str()); LogMessage(TAG, "Message ID: %s", message.message_id.c_str()); }
Mesajlar, gelen farklı veri türlerini temsil edebilir. Genellikle, iletiler geliştirici tarafından başlatıldıktan sonra uygulamaya gönderilir. Mesajlar ayrıca uygulamanıza gönderilen mesajlarla ilişkili etkinlikleri, mesaj gönderme hata etkinliklerini ve silinen mesajları temsil eder. Bu özel etkinlikler, Message::message_type
alanı kontrol edilerek ayırt edilebilir.
Mesajlar Silindi
FCM sunucusu bekleyen iletileri sildiğinde uygulamanıza gönderilir.
Message::message_type
, "deleted_messages"
olacak. İletiler aşağıdaki nedenlerle silinebilir:
FCM sunucusunda çok fazla ileti depolanıyor.
Bu durum, cihaz çevrimdışıyken uygulamanın sunucuları FCM sunucularına daraltılamayan bir dizi mesaj gönderdiğinde gerçekleşebilir.
Cihaz uzun süredir bağlı değilse ve uygulama sunucusu kısa süre önce (son 4 hafta içinde) söz konusu cihazdaki uygulamaya mesaj gönderdiyse.
Bu çağrıyı aldıktan sonra uygulamanın, uygulama sunucusuyla tam senkronizasyon yapması önerilir.