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 sınıfını başlatmak için ::firebase::messaging::Initialize
sınıfını çağırın ve sınıfa ::firebase::App
sınıfınızın yanı sıra ::firebase::messaging::Listener
sınıfının bir 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,
alınan mesaja göre işlemler 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, gönderilen mesaj etkinliklerini, mesaj gönderme hatası etkinliklerini ve silinen mesaj etkinliklerini temsil etmek için de uygulamanıza gönderilir. 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, bir uygulamanın sunucuları cihaz çevrimdışıyken FCM sunucularına bir grup daraltılamaz mesaj gönderdiğinde ortaya çıkabilir.
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.
Uygulamanın bu çağrıyı aldıktan sonra uygulama sunucusuyla tam senkronizasyon yapması önerilir.