FCM'yi kullanmaya başlamak için en basit kullanım alanını oluşturun: Uygulama cihazda arka plandayken Bildirim oluşturucu'dan bir geliştirme cihazına test bildirimi mesajı gönderme. Bu sayfada, kurulumdan doğrulamaya kadar bu hedefe ulaşmak için gereken tüm adımlar listelenir. FCM için Flutter uygulaması ayarladıysanız daha önce tamamladığınız adımlar da bu listede yer alabilir.
FCM eklentisini yükleme
Henüz yapmadıysanız Flutter için Firebase SDK'larını yükleyip başlatın.
Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:
flutter pub add firebase_messaging
İşlem tamamlandıktan sonra Flutter uygulamanızı yeniden oluşturun:
flutter run
Kayıt jetonuna erişme
Belirli bir cihaza mesaj göndermek için cihazın kayıt jetonunu bilmeniz gerekir. Bu eğitimi tamamlamak için jetonu Bildirimler Konsolu'ndaki bir alana girmeniz gerektiğinden, jetonu aldıktan sonra kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.
Bir uygulama örneğinin mevcut kayıt jetonunu almak için getToken()
işlevini çağırın. Bildirim izni verilmediyse bu yöntem, kullanıcıdan bildirim izni ister. Aksi takdirde, bir jeton döndürür veya hata nedeniyle gelecekteki isteği reddeder.
final fcmToken = await FirebaseMessaging.instance.getToken();
Test bildirimi mesajı gönderme
Uygulamayı hedef cihaza yükleyip çalıştırın. Apple cihazlarda, uzaktan bildirim alma izni isteğini kabul etmeniz gerekir.
Uygulamanın cihazda arka planda çalıştığından emin olun.
Firebase konsolunda Mesajlaşma sayfasını açın.
Bu ilk mesajınızsa İlk kampanyanızı oluşturun'u seçin.
- Firebase Notification mesajları'nı ve Oluştur'u seçin.
Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı ve ardından Bildirimler'i seçin.
Mesaj metnini girin. Diğer tüm alanlar isteğe bağlıdır.
Sağ bölmede Test mesajı gönder'i seçin.
Add an FCM registration token (FCM kayıt jetonu ekle) etiketli alana, bu kılavuzun önceki bir bölümünde aldığınız kayıt jetonunu girin.
Test et'i seçin.
Test'i seçtikten sonra, hedef istemci cihaz (uygulama arka planda çalışırken) bildirimi almalıdır.
Uygulamanıza mesaj teslimi hakkında bilgi edinmek için FCM raporlama kontrol paneline bakın. Bu kontrol paneli, Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını kaydeder. Ayrıca Android uygulamaları için "gösterim" (kullanıcıların gördüğü bildirimler) verilerini de içerir.
Etkileşimi işleme
Kullanıcılar bir bildirime dokunduğunda hem Android hem de iOS'te varsayılan davranış uygulamayı açmaktır. Uygulama sonlandırılırsa başlatılır, arka plandaysa ön plana getirilir.
Bildirimin içeriğine bağlı olarak, uygulama açıldığında kullanıcının etkileşimini yönetmek isteyebilirsiniz. Örneğin, bildirim kullanılarak yeni bir sohbet mesajı gönderildiğinde ve kullanıcı bunu seçtiğinde uygulama açıldığında söz konusu görüşmeyi açmak isteyebilirsiniz.
firebase-messaging
paketi, bu etkileşimi ele almanın iki yolunu sunar:
getInitialMessage()
: Uygulama sonlandırılmış bir durumdan açılırsa bu yöntem,RemoteMessage
içeren birFuture
döndürür.RemoteMessage
kullanıldıktan sonra kaldırılır.onMessageOpenedApp
: Uygulama arka plan durumundan açıldığındaRemoteMessage
yayınlayan birStream
.
Kullanıcılarınıza sorunsuz bir deneyim sunmak için her iki senaryoyu da ele almanız gerekir. Aşağıdaki kod örneğinde bu işlemin nasıl yapılabileceği açıklanmaktadır:
class Application extends StatefulWidget {
@override
State<StatefulWidget> createState() => _Application();
}
class _Application extends State<Application> {
// In this example, suppose that all messages contain a data field with the key 'type'.
Future<void> setupInteractedMessage() async {
// Get any messages which caused the application to open from
// a terminated state.
RemoteMessage? initialMessage =
await FirebaseMessaging.instance.getInitialMessage();
// If the message also contains a data property with a "type" of "chat",
// navigate to a chat screen
if (initialMessage != null) {
_handleMessage(initialMessage);
}
// Also handle any interaction when the app is in the background via a
// Stream listener
FirebaseMessaging.onMessageOpenedApp.listen(_handleMessage);
}
void _handleMessage(RemoteMessage message) {
if (message.data['type'] == 'chat') {
Navigator.pushNamed(context, '/chat',
arguments: ChatArguments(message),
);
}
}
@override
void initState() {
super.initState();
// Run code required to handle interacted messages in an async function
// as initState() must not be async
setupInteractedMessage();
}
@override
Widget build(BuildContext context) {
return Text("...");
}
}
Etkileşimi nasıl ele alacağınız, uygulama kurulumunuza bağlıdır. Yukarıdaki örnekte StatefulWidget
kullanımına dair temel bir örnek gösterilmektedir.
Sonraki adımlar
Ön planda çalışan uygulamalara mesaj gönderme
Uygulamanız arka plandayken bildirim mesajlarını başarıyla gönderdikten sonra, ön plana çıkarılan uygulamalara göndermeye başlamak için Flutter Uygulamasında Mesaj Alma bölümüne bakın.
Bildirim mesajlarının ötesine geçme
Uygulamanıza daha gelişmiş davranışlar eklemek için sunucu uygulaması gerekir.
Ardından, uygulama istemcinizde: