Flutter'da Firebase Cloud Messaging istemci uygulaması kurun

Flutter'da bir FCM istemcisi kurmak için bu adımları izleyin.

Platforma özel kurulum ve gereksinimler

Gerekli adımlardan bazıları hedeflediğiniz platforma bağlıdır.

iOS+

Xcode'da uygulama özelliklerini etkinleştirin

Uygulamanızın mesaj almaya başlayabilmesi için Xcode projenizde anında bildirimleri ve arka plan modlarını etkinleştirmeniz gerekir.

  1. Xcode proje çalışma alanınızı açın ( ios/Runner.xcworkspace ).
  2. Anlık bildirimleri etkinleştirin .
  3. Arka planda getirme ve Uzaktan bildirimler arka planda yürütme modlarını etkinleştirin.

APN kimlik doğrulama anahtarınızı yükleyin

FCM'yi kullanmadan önce APN sertifikanızı Firebase'e yükleyin. Henüz bir APN sertifikanız yoksa Apple Geliştirici Üye Merkezi'nde bir tane oluşturun.

  1. Firebase konsolundaki projenizin içinde dişli simgesini seçin, Proje Ayarları'nı ve ardından Bulut Mesajlaşma sekmesini seçin.
  2. Geliştirme sertifikanız, üretim sertifikanız veya her ikisi için Sertifikayı Yükle düğmesini seçin. En az bir tane gereklidir.
  3. Her sertifika için .p12 dosyasını seçin ve varsa parolayı 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 swizzling

FCM Flutter eklentisini Apple cihazlarda kullanmak için yöntem swizzling'i devre dışı bırakmamalısınız. Swizzling gereklidir ve bu olmadan FCM token işleme gibi temel Firebase özellikleri düzgün çalışmaz.

Android

Google Play hizmetleri

FCM istemcileri, Google Play hizmetlerinin de yüklü olduğu, Android 4.4 veya sonraki sürümünü çalıştıran cihazlara veya Google API'leri ile Android 4.4 çalıştıran bir emülatöre ihtiyaç duyar. Android uygulamalarınızı Google Play Store aracılığıyla dağıtmakla sınırlı olmadığınızı unutmayın.

Play Hizmetleri SDK'sını kullanan uygulamalar, Google Play hizmetleri özelliklerine erişmeden önce her zaman cihazda uyumlu bir Google Play hizmetleri APK'sı olup olmadığını kontrol etmelidir. Bunu iki yerde yapmanız önerilir: ana etkinliğin onCreate() yönteminde ve onResume() yönteminde. onCreate() check-in işlemi, uygulamanın başarılı bir kontrol olmadan kullanılamayacağını garanti eder. onResume() check-in işlemi, kullanıcının çalışan uygulamaya geri düğmesi gibi başka bir yöntemle geri dönmesi durumunda kontrolün yine de gerçekleştirilmesini sağlar.

Cihazda Google Play hizmetlerinin uyumlu bir sürümü yoksa uygulamanız, kullanıcıların Play Store'dan Google Play hizmetlerini indirmesine izin vermek için GoogleApiAvailability.makeGooglePlayServicesAvailable() çağırabilir.

FCM ile Web Kimlik Bilgilerini Yapılandırma

FCM Web arayüzü, desteklenen web push hizmetlerine istek gönderme yetkisi vermek için "Gönüllü Uygulama Sunucusu Tanımlaması" veya "VAPID" anahtarları adı verilen Web kimlik bilgilerini kullanır. Uygulamanızı anlık bildirimlere abone olmak için Firebase projenizle bir çift anahtarı ilişkilendirmeniz gerekir. Firebase konsolu aracılığıyla yeni bir anahtar çifti oluşturabilir veya mevcut anahtar çiftinizi içe aktarabilirsiniz.

Yeni bir anahtar çifti oluştur
  1. Firebase konsolunun Ayarlar bölmesinin Bulut Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.

  2. Web Push sertifikaları sekmesinde Anahtar Çifti Oluştur öğesine tıklayın. Konsol, anahtar çiftinin oluşturulduğuna dair bir bildirim görüntüler ve genel anahtar dizesini ve eklenme tarihini görüntüler.

Mevcut bir anahtar çiftini içe aktarın

Halihazırda web uygulamanızla birlikte kullandığınız mevcut bir anahtar çiftiniz varsa bunu FCM'ye aktarabilir, böylece mevcut web uygulaması örneklerinize FCM API'leri aracılığıyla ulaşabilirsiniz. Anahtarları içe aktarmak için Firebase projesine sahip düzeyinde erişiminizin olması gerekir. Mevcut genel ve özel anahtarınızı base64 URL güvenli kodlanmış biçimde içe aktarın:

  1. Firebase konsolunun Ayarlar bölmesinin Bulut Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.

  2. Web Push sertifikaları sekmesinde "mevcut bir anahtar çiftini içe aktar" bağlantı metnini bulup seçin.

  3. Anahtar çiftini içe aktar iletişim kutusunda, genel ve özel anahtarlarınızı ilgili alanlara girin ve İçe Aktar 'ı tıklayın. Konsol, genel anahtar dizesini ve eklenme tarihini görüntüler.

Anahtarların biçimi ve bunların nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Uygulama sunucusu anahtarları .

FCM eklentisini yükleyin

  1. Henüz yapmadıysanız Flutter için Firebase eklentilerini yükleyin ve başlatın .

  2. Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:

    flutter pub add firebase_messaging
    
  3. 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.

// 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 genel anahtarınızı getToken() öğesine iletin:

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

Belirteç 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ı önle

Bir FCM kayıt jetonu oluşturulduğunda kitaplık, tanımlayıcıyı ve yapılandırma verilerini Firebase'e yükler. Belirtecin otomatik oluşturulmasını engellemeyi tercih ederseniz derleme zamanında otomatik başlatmayı devre dışı bırakın.

iOS

iOS'ta Info.plist bir meta veri değeri ekleyin:

FirebaseMessagingAutoInitEnabled = NO

Android

Android'de, bu meta veri değerlerini AndroidManifest.xml dosyanıza ekleyerek Analytics koleksiyonunu ve FCM otomatik başlatmayı devre dışı bırakın (her ikisini de devre dışı bırakmalısınız):

<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ştirin

Belirli bir uygulama örneği için otomatik başlatmayı etkinleştirmek üzere setAutoInitEnabled() öğesini çağırın:

await FirebaseMessaging.instance.setAutoInitEnabled(true);

Bu değer, ayarlandıktan sonra uygulama yeniden başlatıldığında devam eder.

Sonraki adımlar

İstemci uygulaması kurulduktan sonra Bildirimler oluşturucuyla aşağı akış mesajları göndermeye hazırsınız. Arka planda çalışan bir uygulamaya test mesajı gönderme konusuna bakın.

Uygulamanıza daha gelişmiş başka davranışlar eklemek için bir sunucu uygulamasına ihtiyacınız olacaktır.

Ardından, uygulama istemcinizde: