CodeBlanks Logo Icon CodeBlanks

onMessage

onMessage ile ön planda bildirim yakalamayı öğrenirsin.

onMessage akışı

onMessage akışı, uygulama ön plandayken gelen bildirimleri yakalar. Bu akış bir Stream<RemoteMessage> döndürür ve listen ile dinlenir. Ön planda bildirim geldiğinde snackbar veya dialog göstermek için kullanılır.

messaging.onMessage.listen((message) {
  print(message.title);
});

RemoteMessage sınıfı

RemoteMessage, gelen bildirimin verilerini tutan sınıftır. title, body ve data alanları üzerinden bildirim içeriğine erişilir. data alanı özel anahtar-değer çiftleri taşır.

messaging.onMessage.listen((message) {
  print(message.data['key']);
});

Uygulama onMessage akışını dinle

Messaging örneğini al, onMessage akışını listen ile dinle ve message.title'ı yazdır. Dinlemeye başladıktan sonra 10 milisaniye bekle.

Başlangıç kodu

main.dart
class RemoteMessage {
  final String title;
  RemoteMessage(this.title);
}

class FirebaseMessaging {
  static final FirebaseMessaging instance = FirebaseMessaging._();
  FirebaseMessaging._();
  Stream<RemoteMessage> get onMessage => Stream.value(RemoteMessage('Merhaba'));
}

void main() async {
  // onMessage akışını dinle
  // title yazdır
}

Örnek çözüm

main.dart
class RemoteMessage {
  final String title;
  RemoteMessage(this.title);
}

class FirebaseMessaging {
  static final FirebaseMessaging instance = FirebaseMessaging._();
  FirebaseMessaging._();
  Stream<RemoteMessage> get onMessage => Stream.value(RemoteMessage('Merhaba'));
}

void main() async {
  FirebaseMessaging.instance.onMessage.listen((message) {
    print(message.title);
  });
  await Future.delayed(Duration(milliseconds: 10));
}

Beklenen çıktı

Merhaba

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 onMessage akışı ne zaman olay yayar?

  • Cihaz açıldığında
  • Uygulama ön plandayken bildirim gelince Doğru cevap
  • Yalnızca başlatma sırasında
  • Yalnızca uygulama kapalıyken

Açıklama: onMessage yalnızca uygulama ön plandayken bildirim gelince olay yayar; arka planda veya kapalıyken tetiklenmez.

2 onMessage dinle

Soru
FirebaseMessaging.instance.____.listen((message) {
  print(message.title);
});
Cevap
FirebaseMessaging.instance.onMessage.listen((message) {
  print(message.title);
});

Açıklama: onMessage bir getter'dır ve Stream döndürür; parantez gerektirmez, doğrudan .listen ile dinlenir.

3 onMessage parçaları

Kavram Anlamı
onMessage Ön plan akışı
RemoteMessage Bildirim verisi
listen Akışı dinler
foreground Uygulama ön planda

İleri seviye bölümündeki tüm dersler