Basit aşağı akış mesajlarını almak için her istemci uygulamasının bu yöntemleri firebase::messaging::Listener
API'de uygulaması gerekir.
FCM'yi başlat
FCM'yi kayıt jetonunuza erişmek veya mesaj almak amacıyla kullanabilmeniz için öncelikle jetonun başlatılması gerekir.
FCM'yi başlatmak için ::firebase::messaging::Initialize
yöntemini çağırın ve onu, ::firebase::App
nesnenizle birlikte ::firebase::messaging::Listener
sınıfının bir uygulamasıyla 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 uygulaması ö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.
Jetonun değerine ::firebase::messaging::Listener::OnTokenReceived
sanal işleviyle 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
Mesaj almak için İşleyici sınıfınızın OnMessage
sanal işlevini uygulaması gerekir.
OnMessage
öğesini geçersiz kıl
::firebase::messaging::Listener::OnMessage
yöntemini geçersiz kılarak alınan iletiye dayalı işlemler 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. Genellikle, mesajlar 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 mesajları sildiğinde uygulamanıza gönderilir.
Message::message_type
"deleted_messages"
olacak. Mesajlar şu nedenlerle silinebilir:
FCM sunucusunda çok fazla ileti depolandı.
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ğlanmamış ve uygulama sunucusu kısa süre önce (son 4 hafta içinde) bu cihazdaki uygulamaya bir mesaj göndermiştir.
Bu çağrıyı aldıktan sonra uygulamanın uygulama sunucusuyla tam senkronizasyon yapması önerilir.