| Platform seçin: | iOS+ Android Web Flutter Unity C++ |
Her istemci uygulamasının, aşağı akış mesajlarını almak için 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 için önce başlatılması gerekir.
FCM öğesini ilk kullanıma hazırlamak için ::firebase::messaging::Initialize yöntemini çağırın ve bu yönteme ::firebase::App nesnenizi ve ::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.
Jetonun 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 işleme
Mesaj almak için Listener sınıfınızın OnMessage sanal işlevini uygulaması gerekir.
OnMessage geçersiz kılınsın mı?
::firebase::messaging::Listener::OnMessage yöntemini geçersiz kılarak, alınan 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, farklı türde gelen verileri temsil edebilir. En yaygın olarak, mesajlar geliştirici tarafından başlatıldıktan sonra uygulamaya gönderilir. Mesaj gönderildi etkinliklerini, mesaj gönderme hatası etkinliklerini ve mesaj silindi etkinliklerini temsil etmek için uygulamanıza mesajlar da gönderilir. 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 mesaj depolanıyor.
Bu durum, cihaz çevrimdışıyken bir uygulamanın sunucuları FCM sunucularına bir grup daraltılamayan mesaj gönderdiğinde ortaya çıkabilir.
Cihaz uzun süredir bağlanmamıştır ve uygulama sunucusu yakın zamanda (son 4 hafta içinde) o cihazdaki uygulamaya mesaj göndermiştir.
Uygulamanın bu çağrıyı aldıktan sonra uygulama sunucusuyla tam senkronizasyon yapması önerilir.