FCM'yi kullanmaya başlamak için en basit kullanım senaryosunu oluşturun: uygulama cihazın arka planındayken Bildirimler oluşturucusundan bir geliştirme cihazına bir test bildirimi mesajı göndermek. Bu sayfa, kurulumdan doğrulamaya kadar bunu başarmak için gereken tüm adımları listeler; FCM için bir Flutter uygulaması kurduysanız zaten tamamladığınız adımları kapsayabilir.
FCM eklentisini yükleyin
Henüz yapmadıysanız Flutter için Firebase SDK'larını yükleyin ve 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
Tamamlandığında Flutter uygulamanızı yeniden oluşturun:
flutter run
Kayıt belirtecine erişme
Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonunu bilmeniz gerekir. Bu öğreticiyi tamamlamak için belirteci Bildirimler konsolundaki bir alana girmeniz gerekeceğinden, belirteci aldıktan sonra kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.
Bir uygulama örneğinin geçerli kayıt belirtecini almak için getToken()
öğesini çağırın. Eğer bildirim izni verilmemişse bu yöntem kullanıcıdan bildirim izinlerini isteyecektir. Aksi takdirde bir token döndürür veya bir hata nedeniyle geleceği reddeder.
final fcmToken = await FirebaseMessaging.instance.getToken();
Test bildirim mesajı gönder
Uygulamayı hedef cihaza yükleyin ve çalıştırın. Apple cihazlarda uzaktan bildirim alma izni talebini kabul etmeniz gerekir.
Uygulamanın cihazın arka planında olduğundan emin olun.
Firebase konsolunda Mesajlaşma sayfasını açın.
Bu ilk mesajınızsa İlk kampanyanızı oluşturun ' u seçin.
- Firebase Bildirim 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ölmeden Test mesajı gönder'i seçin.
FCM kayıt jetonu ekle etiketli alana, bu kılavuzun önceki bölümünde edindiğiniz kayıt jetonunu girin.
Test'i seçin.
Test öğesini seçtikten sonra, hedeflenen istemci cihazın (uygulama arka plandayken) bildirimi alması gerekir.
Uygulamanıza mesaj teslimine ilişkin bilgi edinmek için, Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını ve ayrıca Android uygulamalarına ilişkin "gösterimler" (kullanıcılar tarafından görülen bildirimler) verilerini kaydeden FCM raporlama kontrol paneline bakın.
Etkileşimi yönetme
Kullanıcılar bir bildirime dokunduğunda hem Android hem de iOS'ta varsayılan davranış uygulamayı açmaktır. Uygulama sonlandırılırsa başlatılacak, arka plandaysa ön plana çıkarılacaktır.
Bir bildirimin içeriğine bağlı olarak uygulama açıldığında kullanıcının etkileşimini yönetmek isteyebilirsiniz. Örneğin, bir bildirim kullanılarak yeni bir sohbet mesajı gönderilirse ve kullanıcı bunu seçerse, uygulama açıldığında söz konusu sohbeti açmak isteyebilirsiniz.
firebase-messaging
paketi bu etkileşimi yönetmenin iki yolunu sunar:
-
getInitialMessage()
: Uygulama sonlandırılmış bir durumdan açılırsa, bu yöntemRemoteMessage
içeren birFuture
döndürür. Kullanıldıktan sonraRemoteMessage
kaldırılacaktır. -
onMessageOpenedApp
: Uygulama bir arka plan durumundan açıldığındaRemoteMessage
gönderen birStream
.
Kullanıcılarınıza sorunsuz bir deneyim sağlamak için her iki senaryoyu da ele almalısınız. Aşağıdaki kod örneği bunun nasıl başarılabileceğini özetlemektedir:
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 örnek, StatefulWidget
kullanımının temel bir örneğini göstermektedir.
Sonraki adımlar
Ön plandaki uygulamalara mesaj gönderin
Uygulamanız arka plandayken bildirim mesajlarını başarıyla gönderdikten sonra, ön plandaki uygulamalara göndermeye başlamak için Flutter Uygulamasında Mesaj Alma konusuna bakın.
Bildirim mesajlarının ötesine geçin
Uygulamanıza daha gelişmiş başka davranışlar eklemek için bir sunucu uygulamasına ihtiyacınız olacak.
Ardından, uygulama istemcinizde: