Firebase Cloud Messaging (FCM) ile Bildirim Entegrasyonu

Merhaba arkadaşlar,


Bu yazımda sizlere Android uygulamanızda Firebase Cloud Messaging (FCM)'i nasıl entegre edip gelen bildirimi UI olarak nasıl gösterebileceğinizi anlatacağım.


Eski kullanımı GCM (Google Cloud Messaging) olup, sonrasında FCM (Firebase Cloud Messaging)'e aktarılan bu teknoloji sayesinde, cihazlarımıza gönderilen 4KB'a kadar bilginin bildirim olarak ekranda istediğiniz görünümde gösterilmesini sağlayabilirsiniz.


Ayrıca Firebase, uygulama portalınız üzerinden de verileri cihazlara bildirim olarak göndermenize kolaylık sağlayan bir ekranda sunmaktadır. Bu sayede istediğiniz bildirim testlerini de bu ekrandan sağlayabilirsiniz.


Görsel Referansı


Gerekensinimler


Android Studio en son sürümü,

Android API sürümü 16+,

Son sürüm olan Google Play Servisleri


ADIM 1: Yeni Proje Başlat

  • Android Studio > Start A New Project > Empty Activity > Project Name > Finish


ADIM 2: Firebase Uygulaması Oluştur ve Projeye Ekle


- Yeni Firebase uygulamanızı konsoldan oluşturduktan sonra açılan ekrandan Android uygulamanıza gerekli konfigürasyonları yapmak için Android ikonuna tıklayıp oluşturduğunuz projenin paket adını girip uygulamanıza özel üretilen google-services.json konfigürasyon dosyasını indirin ve app seviyesinde (app-level) olan modül altına taşıyın. Uygulamanız artık Firebase'i ve kütüphanelerini kullanıma hazır olmaya çok yaklaştı.


- Son iki işlem olarak Google Messaging Servislerinin plugin ve kütüphanelerini indirmemiz ve uygulama için aktif hale getirmemiz gerektiğinden en dış dizin olan (root-level) build.gradle dosyasının bağımlılıklar (dependencies) kısmına aşağıda eklediğim classpath'i ekleyin. Ardından da uygulama seviyesinde (app-level) bulunan build.gradle dosyasının pluginler alanının en sonuna eklediğim google servisler için apply:plugin kodunu ekleyin.


  • Root-level build.gradle:


  • App-level build.gradle:

Artık Android uygulamamız Firebase ürün ve kütüphanelerini kullanmaya aktif hale gelmiştir. Şimdi ise FCM kütüphanesini uygulamamıza ekleyip artık kodlamaya başlayalım.


ADIM 3: Firebase Cloud Messaging SDK'sının indirilmesi için gerekli bağımlılığın eklenmesi


- FCM kütüphanesini indirmek için uygulama seviyesinin bağımlılıklar alanının içine aşağıdaki bloğu ekleyip Sync Now yapmanız yeterlidir.


 implementation 'com.google.firebase:firebase-messaging:20.2.3'

ADIM 4: Bildirim verilerini karşılayacak servis sınıfının oluşturulması


- Uygulama ana klasörüne (app) sağ tıklayıp New > Service diyerek bir servis sınıfı oluşturup onu da FirebaseMessagingService sınıfından oluşturarak tanımlamalıyız. Daha sonra içine zorunlu override metodlarını aşağıda anlatarak oluşturacağım fakat öncelikle Manifest dosyasında yapmanız gereken ayarlamaları paylaşacağım.


  • AndroidManifest.xml


Oluşturduğum servis sınıfının adını NotificationService olarak tanımladım. Yukarda verdiğim bloğu Manifest dosyası içerisinde bulunan <application> tag'i içerisine ekliyoruz. Ardından MESSAGING_EVENT ile bir action intent tanımı yapıyoruz. Bu sayede gönderilen bildirimlerden gelen action ve veriyi servis sınıfı içerisinde karşılayıp gerekli aksiyonları alabiliyoruz.


ADIM 5: Servis sınıfının içinde gerekli metodların yönetilmesi ve bildirim gösterimi

NotificationService sınıfında zorunlu olan metodları ve gelen verilerin kullanım açıklamalarını yukarıdaki kod parçacığında anlattım.


Şimdi ise gelen verileri (title, message vb.) bilgileri alıp ekrana bildirim olarak düşürdüğüm sendNotification metoduna geçelim.

Yukarıda her bir satırda da anlattığım üzere amacım FCM üzerinden gelen verinin bildirim olarak ekrana düşmesini sağlamak ve tıkladığımızda da bu mesajların dışında "customMessage" olarak gönderdiğim değerin açılmış olan sayfada kullanıcıya sunulmasını sağlamaktır. MainActivity üzerinde de gelen veriyi alıp ekrana yansıttığımda geliştirme işlemim bitecektir.


Yukarıda verdiğim parseIntentExtras metodu ve kod bloğu PendingIntent ile açtığım activity ve Bundle olarak gönderdiğim verinin alınmasını, ardından UI'da bulunan TextView'e basılmasını sağlamaktadır.


Bu işlemlerin sonunda artık Firebase konsolunda tanımlı uygulamamızdan Cloud Messaging'i seçip, test olarak bildirimler gönderip gerekli işlemleri yapabiliyoruz. Aşağıda görseller üzerinde tanımlamalarını yaptığım bazı örnekler bulunmaktadır. Ve bu tanımlamalarla beraber Yorum > Yayınla seçeneğine tıkladığımızda ise bildirim anlık olarak cihazımızda görünebilecektir.


Not: Ayrıca yukarıda sizlere sendNotification metodu ile bildirimin görsel olarak karşılanmasını sağlayan NotificationCompat sınıfı ile alakalı basit bir örnek gösterdim. Yazımın sonunda paylaşacağım linkten başka ne tür tasarımlar kullanabileceğinize bakabilirsiniz. (Zengin Medya, Özelleştirilmiş Bildirim Görünümü vb.)




  1. remoteMessage.title

  2. remoteMessage.body

  3. Belirli bir uygulamaya ya da konuya göre filtrelemek için

  4. remoteMessage.data[""] (Eğer özel bir veri varsa)

Ardından artık Yorum'a tıklayıp yayınla dedikten sonra bildirimin düştüğünü görebileceksiniz.


Ekran Görüntüleri:



GitHub: MobilerDevFCM


Görüşmek dileğiyle…

#Firebase #FCM #notification


Kaynaklar:

https://firebase.google.com/docs/android/setup?authuser=0

https://developer.android.com/training/notify-user/build-notification

https://firebase.google.com/docs/in-app-messaging

0 yorum

Son Paylaşımlar

Hepsini Gör

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2021 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın