Basit aşağı akış mesajları almak için her istemci uygulamasının firebase::messaging::Listener
API'sindeki yöntemleri uygulaması gerekir.
FCM'yi başlat
Kayıt belirtecinize erişim sağlamak veya mesaj almak için FCM'yi kullanabilmeniz için önce başlatılması gerekir.
FCM'yi başlatmak için ::firebase::messaging::Initialize
çağırın ve onu ::firebase::App
nesnenizin 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 belirtecine erişme
Uygulamanızın ilk başlangıcında FCM SDK, istemci uygulaması örneği için bir kayıt belirteci oluşturur. Tek cihazları hedeflemek veya FCM için cihaz grupları oluşturmak istiyorsanız bu belirtece erişmeniz gerekir.
Belirtecin değerine ::firebase::messaging::Listener::OnTokenReceived
sanal işlevi aracılığıyla 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 yönetme
Mesaj almak için Listener sınıfınızın OnMessage
sanal fonksiyonunu uygulaması gerekir.
OnMessage
geçersiz kıl
::firebase::messaging::Listener::OnMessage
yöntemini geçersiz kılarak, alınan mesaja göre eylemler gerçekleştirebilir 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 farklı türde gelen verileri temsil edebilir. Çoğunlukla mesajlar geliştirici tarafından başlatıldıktan sonra uygulamaya gönderilir. Mesajlar ayrıca gönderilen mesaj olaylarını, mesaj gönderme hatası olaylarını ve mesaj silinen olayları temsil etmek üzere uygulamanıza da gönderilir. Bu özel olaylar, Message::message_type
alanı kontrol edilerek ayırt edilebilir.
Silinen Mesajlar
FCM sunucusu bekleyen mesajları sildiğinde uygulamanıza gönderilir. Message::message_type
"deleted_messages"
olacaktır. Mesajlar aşağıdaki nedenlerden dolayı silinebilir:
FCM sunucusunda çok fazla mesaj depolanıyor.
Bu durum, bir uygulamanın sunucuları, cihaz çevrimdışıyken FCM sunucularına bir grup daraltılamayan mesaj gönderdiğinde meydana gelebilir.
Cihaz uzun süredir bağlanmadı ve uygulama sunucusu yakın zamanda (son 4 hafta içinde) o cihazdaki uygulamaya bir mesaj gönderdi.
Bu çağrıyı aldıktan sonra uygulamanın, uygulama sunucusuyla tam senkronizasyon yapması önerilir.