Flutter'da FCM istemcisi ayarlamak için aşağıdaki adımları uygulayın.
Platforma özel kurulum ve şartlar
Gerekli adımlardan bazıları, hedeflediğiniz platforma bağlıdır.
iOS+
Xcode'da uygulama özelliklerini etkinleştirme
Uygulamanızın mesaj almaya başlaması için Xcode projenizde push bildirimleri ve arka plan modlarını etkinleştirmeniz gerekir.
- Xcode proje çalışma alanınızı (
ios/Runner.xcworkspace
) açın. - Push bildirimlerini etkinleştirin.
- Arka planda getirme ve Uzaktan bildirimler arka plan yürütme modları seçeneklerini etkinleştirin.
APNs kimlik doğrulama anahtarınızı yükleme
FCM'yi kullanmadan önce APNs sertifikanızı Firebase'e yükleyin. APNs sertifikanız yoksa Apple Developer Member Center'da bir sertifika oluşturun.
- Firebase konsolundaki projenizde dişli simgesini, Proje Ayarları'nı ve ardından Cloud Mesajlaşma sekmesini seçin.
- Geliştirme sertifikanız, üretim sertifikanız veya her ikisi için Sertifika Yükle düğmesini seçin. En az biri gereklidir.
- Her sertifika için .p12 dosyasını seçin ve varsa şifreyi girin. Bu sertifikanın paket kimliğinin, uygulamanızın paket kimliğiyle eşleştiğinden emin olun. Kaydet'i seçin.
Yöntem dönüşümü
FCM Flutter eklentisini Apple cihazlarda kullanmak için yöntem kaydırmayı devre dışı bırakmamalısınız. Değiştirme işlemi gereklidir ve bu işlem olmadan FCM jetonu işleme gibi temel Firebase özellikleri düzgün çalışmaz.
Android
Google Play hizmetleri
FCM istemcileri, Android 4.4 veya sonraki sürümleri çalıştıran ve Google Play Hizmetleri'nin de yüklü olduğu cihazlar ya da Google API'leri ile Android 4.4 çalıştıran bir emülatör gerektirir. Android uygulamalarınızı Google Play Store üzerinden dağıtmanın sınırlı olmadığını unutmayın.
Play Hizmetleri SDK'sını kullanan uygulamalar, Google Play Hizmetleri özelliklerine erişmeden önce cihazda uyumlu bir Google Play Hizmetleri APK'sı olup olmadığını her zaman kontrol etmelidir. Bunu iki yerde yapmanız önerilir: ana etkinliğin onCreate()
yöntemi ve onResume()
yöntemi. onCreate()
denetimi, başarılı bir denetim olmadan uygulamanın kullanılamamasını sağlar. Check-in onResume()
, kullanıcının çalışan uygulamaya geri düğmesi gibi başka bir yöntemle geri dönmesi durumunda kontrolün yine de yapılmasını sağlar.
Cihazda Google Play Hizmetleri'nin uyumlu bir sürümü yoksa uygulamanız, kullanıcıların Play Store'dan Google Play Hizmetleri'ni indirmesine izin vermek için GoogleApiAvailability.makeGooglePlayServicesAvailable()
çağrısı yapabilir.
Web
Web kimlik bilgilerini FCM ile yapılandırma
FCM web arayüzü, desteklenen web push hizmetlerine istek gönderme yetkilendirmesi için "Voluntary Application Server Identification" (Gönüllü Uygulama Sunucusu Kimliği) veya "VAPID" anahtarları adlı web kimlik bilgilerini kullanır. Uygulamanızı push bildirimlerine abone etmek için Firebase projenizle bir anahtar çifti ilişkilendirmeniz gerekir. Firebase konsolunu kullanarak yeni bir anahtar çifti oluşturabilir veya mevcut anahtar çiftinizi içe aktarabilirsiniz.
Yeni bir anahtar çifti oluşturma
Firebase konsolu Ayarlar bölmesinin Cloud Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.
Web Push sertifikaları sekmesinde Anahtar çifti oluştur'u tıklayın. Konsol, anahtar çiftinin oluşturulduğuna dair bir bildirim, ortak anahtar dizesini ve eklenme tarihini gösterir.
Mevcut bir anahtar çiftini içe aktarma
Web uygulamanızla halihazırda kullandığınız bir anahtar çiftiniz varsa FCM API'leri aracılığıyla mevcut web uygulaması örneklerinize erişebilmek için bu anahtar çiftini FCM'ye aktarabilirsiniz. Anahtarları içe aktarmak için Firebase projesine sahip düzeyinde erişiminiz olmalıdır. Mevcut ortak ve özel anahtarınızı base64 URL için güvenli kodlanmış biçimde içe aktarın:
Firebase konsolu Ayarlar bölmesinin Cloud Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.
Web Push sertifikaları sekmesinde "Mevcut bir anahtar çiftini içe aktarın" bağlantı metnini bulup seçin.
Anahtar çiftini içe aktar iletişim kutusunda, ilgili alanlara ortak ve özel anahtarlarınızı girin ve İçe aktar'ı tıklayın. Konsol, ortak anahtar dizesini ve eklenme tarihini gösterir.
Anahtarların biçimi ve nasıl oluşturulacağı hakkında daha fazla bilgi için Uygulama sunucusu anahtarları başlıklı makaleyi inceleyin.
FCM eklentisini yükleme
Henüz yapmadıysanız Flutter için Firebase eklentilerini yükleyip başlatın.
Flutter projenizin kökünden aşağıdaki komutu çalıştırarak eklentiyi yükleyin:
flutter pub add firebase_messaging
İşlem tamamlandığında Flutter uygulamanızı yeniden oluşturun:
flutter run
Kayıt jetonuna erişme
Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonunu bilmeniz gerekir. Bu eğitimde, 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 izinleri ister. Aksi takdirde bir jeton döndürür veya bir hata nedeniyle gelecekteki tarihler reddedilir.
// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);
// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
// APNS token is available, make FCM plugin API requests...
}
Web platformlarında VAPID herkese açık anahtarınızı getToken()
'ye iletin:
final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");
Jeton güncellendiğinde bildirim almak için onTokenRefresh
akışına abone olun:
FirebaseMessaging.instance.onTokenRefresh
.listen((fcmToken) {
// TODO: If necessary send token to application server.
// Note: This callback is fired at each app startup and whenever a new
// token is generated.
})
.onError((err) {
// Error getting token.
});
Otomatik başlatmayı önleme
Bir FCM kayıt jetonu oluşturulduğunda kitaplık, tanımlayıcıyı ve yapılandırma verilerini Firebase'e yükler. Jetonun otomatik olarak oluşturulmasını önlemek istiyorsanız derleme sırasında otomatik başlatmayı devre dışı bırakın.
iOS
iOS'te Info.plist
öğenize meta veri değeri ekleyin:
FirebaseMessagingAutoInitEnabled = NO
Android
Android'de, Analytics verilerinin toplanmasını ve FCM'nin otomatik olarak başlatılmasını devre dışı bırakmak için aşağıdaki meta veri değerlerini AndroidManifest.xml
dosyanıza ekleyin (her ikisini de devre dışı bırakmanız gerekir):
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
Çalışma zamanında FCM otomatik başlatmayı yeniden etkinleştirme
Belirli bir uygulama örneği için otomatik başlatmayı etkinleştirmek üzere setAutoInitEnabled()
işlevini çağırın:
await FirebaseMessaging.instance.setAutoInitEnabled(true);
Bu değer, ayarlandıktan sonra uygulama yeniden başlatılsa bile değişmez.
Sonraki adımlar
Müşteri uygulaması kurulduktan sonra Bildirimler derleyicisi ile yayın mesajları göndermeye başlayabilirsiniz. Arka plandaki bir uygulamaya test mesajı gönderme başlıklı makaleyi inceleyin.
Uygulamanıza başka daha gelişmiş davranışlar eklemek için sunucu uygulaması gerekir.
Ardından uygulama istemcinizde: