C++ istemci uygulamasında ileti alma

Basit aşağı akış mesajlarını almak için her istemci uygulamasının yöntemlerini firebase::messaging::Listener. API'ye gidin.

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 şu numarayı arayın: ::firebase::messaging::Initialize. ve ::firebase::App nesnesinin yanı sıra ::firebase::messaging::Listener sınıfını kullanır.

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ı bir kayıt oluşturur jeton olacaktır. Tek bir cihazı hedeflemek istiyorsanız veya FCM için cihaz grupları oluşturmak istiyorsanız bu jetona erişmeniz gerekir.

Jetonun değerine ::firebase::messaging::Listener::OnTokenReceived. sanal işlev

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

Mesajları almak için Dinleyici sınıfınızın OnMessage. sanal işlev

OnMessage öğesini geçersiz kıl

Yöntemi geçersiz kılarak ::firebase::messaging::Listener::OnMessage, alınan iletiye bağlı olarak çeşitli işlemler gerçekleştirebilir ve ileti 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. Mesajlar Ayrıca mesaj gönderilen etkinlikleri, mesaj gönderme hatasını göstermek için uygulamanıza da gönderilir etkinlik ve iletilerin silinen etkinlikleri. Bu özel etkinlikler, Message::message_type alanını kontrol edin.

Mesajlar Silindi

FCM sunucusu bekleyen mesajları sildiğinde uygulamanıza gönderilir. Message::message_type "deleted_messages" olacak. Mesajların silinme zamanı gelmiş olabilir alıcı:

  1. FCM sunucusunda çok fazla ileti depolandı.

    Bu durum, uygulamanın sunucuları daraltılamayan bir veri kümesi gönderdiğinde cihaz çevrimdışıyken FCM sunucularına gönderilen mesajlar.

  2. Cihaz uzun süredir bağlanmamış ve uygulama sunucusunda kısa bir süre önce (son 4 hafta içinde), ilgili uygulamaya olanak tanır.

    Uygulamanın, uygulamayla tam senkronizasyon yapması önerilir sunucusuyla iletişim kurmanız gerekir.