Bu kılavuzda, mesajları güvenilir bir şekilde alabilmeniz için mobil ve web istemci uygulamalarınızda Firebase Cloud Messaging'yı nasıl ayarlayacağınız açıklanmaktadır.
Aşağı akış 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'yı kullanabilmeniz için önce başlatmanız gerekir.
FCM öğesini başlatmak için ::firebase::messaging::Initialize
öğesini çağırın
ve ::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ın ilk başlatılmasında FCM SDK, 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.
}
İleti alma ve işleme
Mesaj almak için Listener sınıfınızın OnMessage
sanal işlevini uygulaması gerekir.
Geçersiz kıl: OnMessage
::firebase::messaging::Listener::OnMessage
yöntemini geçersiz kılarak, alınan mesaja göre 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());
}
İletiler, farklı türlerdeki gelen verileri temsil edebilir. En yaygın olarak, iletiler geliştirici tarafından başlatıldıktan sonra uygulamaya gönderilir. Ayrıca, gönderilen ileti etkinliklerini, ileti gönderme hatası etkinliklerini ve silinen ileti etkinliklerini temsil etmek için uygulamanıza iletiler 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 depolanmış.
Bu durum, bir uygulamanın sunucuları cihaz çevrimdışıyken FCM sunucularına bir sürü daraltılamayan mesaj gönderdiğinde ortaya çıkabilir.
Cihaz uzun süredir bağlanmıyor ve uygulama sunucusu kısa süre önce (son 4 hafta içinde) bu cihazdaki uygulamaya mesaj gönderdi.
Uygulamanın bu aramayı aldıktan sonra uygulama sunucusuyla tam senkronizasyon yapması önerilir.